同时运行的两个打包工具能否公用一个终端界面输出info,怎么实现

如题,比如node a.js -w | node b.js -w 这种情况下,a与b均会打包文件,但是终端中只有b的info,想实现a的info以及b的info间歇输出,互不影响

阅读 2k
2 个回答

node a.js & node b.js

如果在 a.js 用 child_process 模块的 fork 方法启动一个子进程 b.js,两个脚本的输出都可以到控制台的。因为,fork 方法两个进程是独立的。下面是参考代码,你可以试着运行一下。

// a.js
var cp = require('child_process');

console.log('I am father process. PID:', process.pid);

var child = cp.fork('b.js');

setTimeout(function() {
  console.log('5 seconds passed. father Game Over!');
}, 5000);
// b.js
var cp = require('child_process');

console.log('I am child process. PID:', process.pid);

var timer = global.setInterval(function() {
  console.log('time:', Date.now());
}, 2000);

global.setTimeout(function() {
  global.clearInterval(timer);
  console.log('OK! 16 seconds. Game Over!');
}, 16000);
推荐问题