我想在后台运行npm install和grunt

时间:2016-03-10 00:25:29

标签: node.js

所以我在节点中有代码,我想在后台运行npm install和grunt。 npm install应该在grunt运行之前运行。两者都应该以异步方式运行。如何使用节点完成此操作?

1 个答案:

答案 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'));