Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
124
rated 0 times [  127] [ 3]  / answers: 1 / hits: 48493  / 7 Years ago, wed, april 5, 2017, 12:00:00

I have an JS app. It works good on linux but in windows 10 I am getting an error.



events.js:161
throw er; // Unhandled 'error' event
^

Error: spawn npm ENOENT
at exports._errnoException (util.js:1028:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:422:7)
at startup (bootstrap_node.js:143:9)
at bootstrap_node.js:537:3


and the code which is incorrect is this



const spawn = require('child_process').spawn;

const watching = [
// {service: babel-watch},
{service: webpack-watch},
// {service: sass-watch},
{service: server-watch}
];

watching.forEach(({service}) => {
const child = spawn('npm', ['run', service]);
child.stdout.on('data', d => console.log(d.toString()));
child.stderr.on('data', d => console.log(d.toString()));
});


I found the reason of this error in github I guess the problem is spawn nodejs spawn Doc which have didn't work correctly in windows. But I don't know how to modify this snippet of code to make it work. Can someone help me ?


More From » node.js

 Answers
3

Just changed this line



const child = spawn('npm', ['run', service]);


to this line



  const child = spawn(/^win/.test(process.platform) ? 'npm.cmd' : 'npm', ['run',  service]);


Which is checking the operating system if ti's windows it runs npm.cmd if it's linux just npm


[#58264] Monday, April 3, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
martin

Total Points: 405
Total Questions: 93
Total Answers: 93

Location: Mexico
Member since Sun, Jul 25, 2021
3 Years ago
martin questions
Wed, Jun 16, 21, 00:00, 3 Years ago
Mon, May 24, 21, 00:00, 3 Years ago
Mon, Jan 11, 21, 00:00, 3 Years ago
;