[Node.js] Error: spawn ENOENT の解決方法
Node.js の child_process.spawn で Error: spawn ENOENT というエラーが発生したときの解決方法をご紹介します。
結論から書くと child_process.spawn の第一引数に渡していた path に実行するコマンドがないというのが原因でした。
今回のケースだと ImageMagick コマンドです。
前提
エラーが発生したコード(一部のみ抜粋)
imagemagick = require 'imagemagick' child_process = require 'child_process' spawned_child_process = child_process.spawn imagemagick.identify.path |
エラーメッセージ
Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34) |
Error: spawn ENOENT の解決方法
node-imagemagick という npm module はインストールしていたけど、肝心の ImageMagick がインストールされていないのが原因でした。
brew list コマンドで ImageMagick がインストールされているか確認してみてもありませんでした。
brew list | grep imagemagick |
インストールされていない場合、ImageMagick をインストールしましょう。
brew install xz # ImageMagick Dependencies brew install imagemagick |
そうすれば Error: spawn ENOENT エラーは発生せず画像アップロードできるようになるはずです。
参考情報
- debugging – How do I debug "Error: spawn ENOENT" on node.js? – Stack Overflow
- Child Process Node.js v0.11.11 Manual & Documentation
- rsms/node-imagemagick