function runNpmInstall() { return new Promise((resolve, reject) => { let cmd = 'npm'; if (os.platform() === 'win32') { cmd += '.cmd'; } npmProcess = spawn(cmd, ['install'], {cwd: path.join(__dirname, 'service_')}); npmProcess.on('error', e => { npmProcess = null; reject(e); }); npmProcess.on('close', async code => { npmProcess = null; if (code === 0) { resolve(); } else { reject(code); } }); npmProcess.stdout.on('data', data => { log(data); console.log(`${data}`); }); npmProcess.stderr.on('data', data => { log('error: ' + data); console.error(`${data}`); }); }); }