fnmを使っている場合IntelliJ IDEAで起こる問題を解決した

大きく分けて2つ問題があった。

  • ターミナルのPowerShellでエラーが出ている
  • Node インタープリターのパスが通らない

以下、1つずつ解決方法。

ターミナルのPowerShellでエラーが出ている

Intelij IDEA のメニューバーから [ファイル] → [設定] を開き、設定画面の左メニューから [ツール] → [ターミナル] を開く。

画像のように、「シェルパス」部分で PowerShell のパスの後ろに -ExecutionPolicy Unrestricted を追加する。大体の場合は以下のようになるはず。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted

これで Intelij IDEA 内のターミナル(の PowerShell)にエラーが出なくなり、fnm が使えるようになった。

Node インタープリターのパスが通らない

Node インタープリターで、%PATH% に実行ファイルがありません、となっている。

この理由は、fnm がプロファイルファイルのコマンドを使用してシェルの %PATH% を変更するため。しかし Intellij IDEA を利用する場合、fnm のプロファイルファイルのコマンドは実行されない。

色々調べたところ、fnm プロファイルファイルが実行されるシェル…私の場合は PowerShell、からソフトを起動すれば良いことが分かった。

Intellij IDEA をコマンドラインから起動できるようにする

コマンドラインインターフェース | IntelliJ IDEA を参考に、Intellij IDEA を起動するシェルスクリプトを生成。私は Toolbox アプリから生成したのでボタンワンクリックで完了。ここでは idea.cmd を生成した。

PowerShell から Intellij IDEA を起動

fnm が動くようにしてある PowerShell を起動し、先程生成した idea.cmd を PowerShell にドラッグアンドドロップしてエンター。

Intellij IDEA が起動するので Node インタープリターの部分を確認する。

先ほどは %PATH% に実行ファイルがない、とエラーになっていたが、PowerShell から起動した Intelij IDEA では無事に Node インタープリターのパスが通っている。

これで Intelij IDEA から gulpfile.js を実行できるようになった。

(楽をするために)bat ファイルを作る

毎回 PowerShell に idea.cmd をドラッグアンドドロップして起動するのは面倒なので bat ファイルを作成した。名前はなんでもいいので intelijIDEA-fnm.bat など分かりやすいものにして、以下の内容を書く。この bat ファイルと同じフォルダに idea.cmd をいれておく。

echo off
powershell -ExecutionPolicy Unrestricted .\idea.cmd
exit /b

これで、intelijIDEA-fnm.bat から Node インタープリターのパスが通っている状態の Intelij IDEA が起動する。

おわり

fnm を導入して、Intelij IDEA でも問題なく動くようにするまで試行錯誤したので未来の自分のためにメモっておきます。

参考)