WebstormのFileWatcher時に出る「env: node: No such file or directory」エラー


概要

  • JetBrains製品であるWebStormに内蔵されている「File Watcheres」という機能を使っているときに遭遇したエラーの解消方法
  • おそらくPhpStormなど他の製品でも同様の事象になる可能性がある

対象読者

  • 表題のエラーに遭遇した人
  • JetBrain製品使い

エラー事象

概要にも記載している通り、WebStormに内蔵されている「File Watcher」という機能を使おうとしたときに出たエラーです。
具体的にはファイル保存時に自動でPrettierをかけようと下記の通り設定をしようとします。

この状態で保存をして対象のファイル(今回の例ではTypescriptファイルである.tsファイル)を編集して保存し、動作を確かめます。
この際に下記のエラーに遭遇しました。


/path/to/project/root/node_modules/.bin/prettier --write index.ts
env: node: No such file or directory

Process finished with exit code 127

エラー調査

見たところ、単にNodeのバイナリが見つかっていないだけに見えます。通常のターミナル、WebStorm内蔵のターミナルからバイナリが引けるか確認してみます。。。普通にひけるやん。

シェル自体(筆者の環境ではzsh)にはnodeのパスは通っているように見えます。。。

解決方法

File Watchersの各コマンドには環境変数が設定できるところがあります。一番下のEnvironment variablesです。

ここを見ると、システム環境変数を含むという項目にチェックが入ってますが、SHELLがbashになっていたり、PATHが通常のターミナルを立ち上げて出力される結果よりも明らかに短い事がわかりました。

根本解決にはなっていない気がしていますが、ターミナルから下記コマンドを打ち込んで、PATHの設定内容を吐き出させます。それをコピーしてコマンドの環境変数のPATHとして登録をします。

$ echo $PATH
/Users/h・・・・・・・

環境変数を登録した状態で変更を保存することで無事nodeのバイナリが読み込まれてPrettierを実行できました。