node.js - 执行从节点内启动的命令时在控制台上获取连续信息
问题描述
我有以下文件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-deploy,node exec-deploy
我只会在执行结束时看到所有信息,并在控制台上一次性打印出来。
即使我从 javascript 中执行 npm 脚本,是否可以在终端上获得连续的信息流?
解决方案
在阅读了官方文档和这篇有趣的文章之后,我找到了解决我的问题的方法,其中包括使用spawn
而不是exec
指定以下选项
spawn('npm run deploy', null, {
stdio: 'inherit',
shell: true,
});
推荐阅读
- c# - 为内存 DbContext 设置自动固定装置
- javascript - 如何控制对 Cesium/CZML 数据源的可见性
- javascript - Vera 代码中通过发送数据 (CWE ID 201) 的信息暴露
- python - 使用python替换pdf文件中的页脚文本
- xml - 捕获不同的 Sharepoint GUID
- ruby-on-rails - 为什么 ActiveRecord 对象返回 DateTime.now 与 DateTime.now 不同
- unit-testing - 有没有办法编译在 gcc 上使用 -Weffc++ 标志编译时使用模拟的谷歌测试
- postgresql - 用于向 Postgres DB 批量插入的 Azure 持久功能
- google-schemas - 电子邮件标记在被 Google 列入白名单后不起作用(已经 17 天)
- python - 将 Selenium exe(用 Python 编码)转换回 Python 源代码的方法?