使用child_process.spawn将execArgs添加到Node可执行文件

时间:2016-06-06 19:57:41

标签: node.js

我想知道添加" execArgs"的正确方法是什么?到节点进程 -

我们有:

const cp = require('child_process');

const n = cp.spawn('node', ['some-file.js'], {});

但如果我想像这样添加一个execArg会怎么样:

const n = cp.spawn('node --harmony', ['some-file.js'], {});

我认为这不是正确的做法,文档似乎不能证明这一点吗?

这是正确的方法吗?

 const n = cp.spawn('node', ['--harmony','some-file.js'], {});

1 个答案:

答案 0 :(得分:1)

根据docs for child_process.spawn(),它明确指出args是一个字符串参数数组,作为第二个参数传入。

  

child_process.spawn()方法使用给定命令生成一个新进程,其中args中有命令行参数。如果省略,则args默认为空数组。

     

第三个参数可用于指定其他选项,具有以下默认值:

     

{ cwd: undefined, env: process.env }

运行ls -lh / usr,捕获stdout,stderr和退出代码的示例:

const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

根据上面从child_process文档中提取的内容,以下内容是正确的。

const n = cp.spawn('node', ['--harmony','some-file.js']);