🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

ElectronでMainプロセスからchild_processでコマンドを叩くとエラーコード: 127

ElectronのMainプロセスから、Nodeの`child_process.exec`とか使って、`ffmpeg`とかそういう「後から入れたコマンド」を叩いた時にエラーになった。

その問題と対策をメモ。

$PATHのせい

macOSの場合、`.bashrc`とか`.zshrc`とかで追加した環境変数が引き継がれないらしく、それで「コマンドがねーよ」って言われてる。

なのでそこを解決すればよい。

具体的には、

GitHub - sindresorhus/fix-path: Fix the $PATH on macOS when run from a GUI app

こういうのを入れるほか、

process.env['PATH'] = '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin';

みたく自力で定義してもいい。

`electron-packager`でパッケージしたら発生した

`electron .`とかして実行してる間は発生しなかったので、ちょっとハマった。