2014-03-12 37 views
2

我尝试使用下面的代码拦截compass watch输出:如何禁用nodejs ChildProcess.spawn标准输出缓冲区?

var spawn = require('child_process').spawn; 

var child = spawn('compass', ['watch'], { cwd: process.cwd() }); 

process.on('data', function (data) { 
    console.log('[log] ' + data); 
}); 

我的问题是:我一定要保存文件两次改写消息发送到标准输出出来。下面是一个示例输出...

node compass.js

[log] >>> Compass is watching for changes. Press Ctrl-C to Stop. 

后我将文件保存第二次

[log] overwrite assets/css/modules/projects.css 
>>> Change detected at 20:17:26 to: components/_avatar.scss 

我保存的文件

[log] >>> Change detected at 20:17:19 to: components/_avatar.scss 

后它看起来像“覆盖assets/css/modules/projects.css”正在被缓冲。有什么办法可以避免这个缓冲区?

回答

0

正如我刚发现的,指南针(或者可能是OSX)是真正的罪魁祸首。如果我运行compass watch,输出即刻更新。但是,如果我运行compass watch > out.log,则会发生与节点相同的行为。