在运行node.js的Windows上,可执行文件具有奇怪的process.stdout行为

时间:2017-02-14 05:32:11

标签: node.js windows stdout

看起来这可能与我用来在Windows上运行节点脚本的系统的怪癖有关。我尝试在Windows上保持开发环境非常基本,因为我已经定期擦除Windows框,因为Windows的性质。

所以我使用Git for Windows安装程序附带的这个薄荷2.6.2。

我有一个程序需要读取一个可笑的大型XML文件,这是我用来解析它的readline代码。

var rd = readline.createInterface({
    input: fs.createReadStream(process.argv[2]),
    output: process.stdout,
    console: false
});

另请注意,脚本顶部有#!/usr/bin/env node

该程序会在process.argv[2]事件的基础上逐行使用line文件的内容。

如果我像./program.js args一样运行此程序,argv[2]的内容请勿将其转到stdout上。

如果我运行此程序,如node ./program.js argsargv[2]的内容,请将其设为stdout。

我可以简单地注释掉output字段或用require('stream-blackhole')()之类的内容替换它,但我真的很好奇为什么stdout行为在这种环境下如此奇怪。

哦,当我尝试将输出重定向到任何地方时,通过stdout is not a tty命令行调用运行时我获得node的方式。

0 个答案:

没有答案