所以我在节点中有代码,我想在后台运行npm install和grunt。 npm install应该在grunt运行之前运行。两者都应该以异步方式运行。如何使用节点完成此操作?
答案 0 :(得分:0)
从节点内部删除命令,它将如下所示:
const exec = require('child_process').exec;
exec('npm install && grunt', (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
如果你想按照描述同时运行,那么在shell的后台运行
npm install && grunt &
要将输出写入文件,您可以执行
const exec = require('child_process').exec;
exec('npm install && grunt', (err, stdout, stderr) => {
fs.writeFile('outputOfNpmInstallPlusGrunt.txt', stdout, () => { ... })
}
相反,使用spawn,它看起来像:
const spawn = require('child_process').spawn;
function makeRunner(name, cb) {
var ls = spawn(name, []);
var output = '';
ls.stdout.on('data', (data) => { output += data; });
ls.on('close', (code) => {
fs.writeFile(name.split(' ').join('-'), output, cb);
});
}
makeRunner('npm install', () => makeRunner('grunt'));