首页 > 解决方案 > 执行从节点内启动的命令时在控制台上获取连续信息

问题描述

我有以下文件exec-deploy.js

// exec-deploy.js
const exec = require('child_process').exec
exec("npm run deploy", (err, stdout, stderr) => console.log(stdout))

npm run deploy,当从命令行调用时,会在执行时打印大量数据,为我提供有关部署进度的信息。

如果我执行exec-deploynode exec-deploy我只会在执行结束时看到所有信息,并在控制台上一次性打印出来。

即使我从 javascript 中执行 npm 脚本,是否可以在终端上获得连续的信息流?

标签: node.js

解决方案


在阅读了官方文档和这篇有趣的文章之后,我找到了解决我的问题的方法,其中包括使用spawn而不是exec指定以下选项

spawn('npm run deploy', null, {
    stdio: 'inherit',
    shell: true,
});

推荐阅读