stdout 不是 tty。使用 bash 节点 + 磁带 + tap-spec
stdout is not a tty. Using bash for node + tape + tap-spec
正在看磁带 + 点击视频并尝试让它工作。
OS: Windows 7
Git Bash Shell
node main.js | ./node_modules/.bin/tap-spec
stdout 不是 tty。
main.js:
var test = require('tape');
var add = require('./add');
test('add: two numbers add correctly', function(t) {
var actual = add(1,2);
var expected = 3;
t.equal(actual, expected);
t.end();
});
add.js:
module.exports = function(a, b) {
return a + b;
};
winpty 节点 main.js | ./node_modules/.bin/tap-spec
没有解决问题。
诊断:
代码没有问题,我得到以下输出:(OS : ArchLinux)
add: two numbers add correctly
✔ should be equal
total: 1
passing: 1
duration: 14ms
可能是 Windows 7 Git Bash Shell
的问题
I read somewhere : sending output through a pipe is broken with Git Bash
要丢弃它 运行 以下命令:
node -p -e "Boolean(process.stdout.isTTY)"
要使其正常工作,您需要以下输出:true
解决方案(针对Windows):
$ node -p -e "Boolean(process.stdout.isTTY)"
false
使用 winpty tool,它创建一个隐藏的控制台并在它和 Cygwin/GitBashshell 模拟的 pty 之间编组 I/O :
$ winpty node -p -e "Boolean(process.stdout.isTTY)"
true
READ MORE : Node.js doesn't run as tty on windows / cygwin Issue#3006
我在控制台上遇到了同样的问题"stdout is not a tty"
这是因为控制台,在安装 Git 时有一个选项正在选择默认终端。再次安装 Git 并选择终端作为 Windows 控制台,然后就可以了。
node generateData.js > db.json 在 Visual Studio 代码的终端上运行:bash
补充一下我的情况,我遇到了类似的问题。使用 winpty 的两种解决方案都没有帮助,因此当 运行 脚本(在我的例子中来自 Git bash 时,我使用了不同的提示来使用 node.exe
而不是 node
).
不工作:
node myscript.js < some-input.txt > some-output.txt
工作:
node.exe myscript.js < some-input.txt > some-output.txt
如果你在Windows
中使用GitBash
在文件 ./bash_profile 中,您必须添加:
alias docker='winpty -Xallow-non-tty -Xplain docker'
正在看磁带 + 点击视频并尝试让它工作。
OS: Windows 7
Git Bash Shell
node main.js | ./node_modules/.bin/tap-spec
stdout 不是 tty。
main.js:
var test = require('tape');
var add = require('./add');
test('add: two numbers add correctly', function(t) {
var actual = add(1,2);
var expected = 3;
t.equal(actual, expected);
t.end();
});
add.js:
module.exports = function(a, b) {
return a + b;
};
winpty 节点 main.js | ./node_modules/.bin/tap-spec 没有解决问题。
诊断:
代码没有问题,我得到以下输出:(OS : ArchLinux)
add: two numbers add correctly
✔ should be equal
total: 1
passing: 1
duration: 14ms
可能是 Windows 7 Git Bash Shell
I read somewhere : sending output through a pipe is broken with Git Bash
要丢弃它 运行 以下命令:
node -p -e "Boolean(process.stdout.isTTY)"
要使其正常工作,您需要以下输出:true
解决方案(针对Windows):
$ node -p -e "Boolean(process.stdout.isTTY)"
false
使用 winpty tool,它创建一个隐藏的控制台并在它和 Cygwin/GitBashshell 模拟的 pty 之间编组 I/O :
$ winpty node -p -e "Boolean(process.stdout.isTTY)"
true
READ MORE : Node.js doesn't run as tty on windows / cygwin Issue#3006
我在控制台上遇到了同样的问题"stdout is not a tty"
这是因为控制台,在安装 Git 时有一个选项正在选择默认终端。再次安装 Git 并选择终端作为 Windows 控制台,然后就可以了。
node generateData.js > db.json 在 Visual Studio 代码的终端上运行:bash
补充一下我的情况,我遇到了类似的问题。使用 winpty 的两种解决方案都没有帮助,因此当 运行 脚本(在我的例子中来自 Git bash 时,我使用了不同的提示来使用 node.exe
而不是 node
).
不工作:
node myscript.js < some-input.txt > some-output.txt
工作:
node.exe myscript.js < some-input.txt > some-output.txt
如果你在Windows
中使用GitBash在文件 ./bash_profile 中,您必须添加:
alias docker='winpty -Xallow-non-tty -Xplain docker'