【发布时间】:2019-02-10 14:59:34
【问题描述】:
我最近一直在开发按需构建服务器。构建服务器是一个 NodeJS/Express REST API,它本质上包装了 Angular CLI 和相关的构建工具,用于完成自定义的按需 Angular 应用程序。
一切都按预期端到端运行,但我希望能够更详细地处理状态报告,因为 Angular 构建在考虑到流程的 2 个非常大的部分时可能会非常耗时
流程中运行时间最长的两个部分:
-
npm install(通常通过默认 @angular/schematics 集合中的 ng-new 原理图自动启动) - 实际的
ng build命令。
2 很容易解决,因为我直接通过 child_process.spawn() 生成该进程 (ng build --prod)。
1 已经证明有点复杂,因为长时间运行的npm install 进程实际上是在内部启动到默认的 Angular ng-new 示意图/命令。所以,如果我的想法是正确的,这本质上是一个显式产生的子进程(我产生的ng new),它在内部产生npm install。
我想出的一个解决方法是将--skip-install arg 传递给ng new,这将防止内部npm install 进程被原理图启动。通过这样做,我可以通过child_process.spawn() 手动启动npm install 并直接观察stdout 和stderr 流。
我很好奇是否有人知道从我明确生成的ng new 命令中启动的“npm install”中监视 stderr 和 stdout 流的方法?
谢谢!
【问题讨论】:
标签: node.js stdout child-process stderr spawn