大きく分けて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 でも問題なく動くようにするまで試行錯誤したので未来の自分のためにメモっておきます。
参考)