从不同的项目/仓库执行项目的npm脚本

时间:2017-10-20 20:24:49

标签: node.js

我需要从不同的节点项目中执行一个npm脚本。

我尝试了什么:

const installingf = spawn('cd', ['[path to directory]', '&&', 'npm', 'run', 'test']);

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

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

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

但它不起作用。它显示退出的子进程,代码为0

我尝试mkdir来测试它是否被执行但是没有创建目录,它以代码0退出但是脚本没有被执行。

如果我做错了,请帮我弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

也许是因为您尝试执行一个命令,但是您没有运行 cmd

只要您没有创建别名,cd命令就不存在于Windows上。所以你需要运行' cmd'有参数可以运行。

const spawn = require('child_process').spawn;
const bat = spawn('cmd.exe', ['/c','calc.exe']);

bat.stdout.on('data', (data) => {
  console.log(data);
});

bat.stderr.on('data', (data) => {
  console.log(data);
});

bat.on('closed', (code) => {
 alert(`Child exited with code ${code}`);
});