看起来这可能与我用来在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 args
,argv[2]
的内容,请将其设为stdout。
我可以简单地注释掉output
字段或用require('stream-blackhole')()
之类的内容替换它,但我真的很好奇为什么stdout行为在这种环境下如此奇怪。
哦,当我尝试将输出重定向到任何地方时,通过stdout is not a tty
命令行调用运行时我获得node
的方式。