Issue
When I get the following error:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:1000:11)
at Process.ChildProcess._handle.onexit (child_process.js:791:34)
What procedure can I follow to fix it?
Author note: Lots of issues with this error encouraged me to post this question for future references.
Related questions:
- using spawn function with NODE_ENV=production
- node.js child_process.spawn ENOENT error - only under supervisord
- spawn ENOENT node.js error
- https://stackoverflow.com/questions/27603713/nodejs-spawn-enoent-error-on-travis-calling-global-npm-package
- Node JS - child_process spawn('npm install') in Grunt task results in ENOENT error
- Running "foreman" task Fatal error: spawn ENOENT
- unhandled error event in node js Error: spawn ENOENT at errnoException (child_process.js:975:11)
- Node.js SpookyJS: error executing hello.js
- https://stackoverflow.com/questions/26572214/run-grunt-on-a-directory-nodewebkit
- Run exe file with Child Process NodeJS
- Node: child_process.spawn not working on Java even though it's in the path (ENOENT)
- spawn ENOENT error with NodeJS (PYTHON related)
- image resizing is not working in node.js (partial.js) (non-installed dependency)
- npm install error ENOENT (build dependency problem)
- Cannot install node.js - oracle module on Windows 7 (build dependency problem)
- Error installing gulp using nodejs on windows (strange case)
Solution
How to research the spawn call raising the error:
- Use NODE_DEBUG=child_process, Credits to @karl-richter. Simple, quick, October 2019
- Use a wrapper to decorate
child_process.spawn
, Credits to @jiaji-zhou. Simple, quick, January 2015 - Long procedure, credits to @laconbass. Complex, time-cost, December 2014
Known, usual causes
Environment issues
- The command executable does not exist within the system (dependency not being installed). see prominc's answer
- The command executable does not exist within a directory of those specified by
PATH
environment variable. - The executable binary was compiled with uncompatible libraries. see danilo-ramirez answer
Windows-only bugs/quirks
- '.cmd' extension / shell: true. see li-zheng answer
- Administrator permisions. see steve's answer
Wrong
spawn('command', ['--argument', 'list'], { cwd, env, ...opts })
usage- Specified working directory (
opts.cwd
) does not exist · see leeroy-brun's answer - Argument list within command
String
spawn('command --wrong --argument list')
- Env vars within command string
spawn('ENV_VAR=WRONG command')
- Argument list
Array
specified asString
spawn('cmd', '--argument list')
- Unset
PATH
env variable=>spawn('cmd', [], { env: { variable } }
spawn('cmd', [], { env: { ...process.env, variable } }
- Specified working directory (
There are 2 posible origins for
ENOENT
:
- Code you are writing
- Code you depend on
When origin is code you depend on, usual cause is an Environment Issue (or windows quirk)
Answered By - laconbass Answer Checked By - Katrina (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.