Was looking at a tape + tap video and tried to get it to work.
OS: Windows 7 Git Bash Shell

node main.js | ./node_modules/.bin/tap-spec 

stdout is not a 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 node main.js | ./node_modules/.bin/tap-spec doesn't fix the problem.

6 Answers

Just to add my case, I was facing similar issue. Neither solution of using winpty did help, thus I used different hint on using node.exe instead of node when running a script (from Git bash in my case).

not working:

node myscript.js < some-input.txt > some-output.txt 

working:

node.exe myscript.js < some-input.txt > some-output.txt 
10

Diagnose :

Theres nothing wrong with the code, I get the following output : (OS : ArchLinux)

 add: two numbers add correctly ✔ should be equal total: 1 passing: 1 duration: 14ms 

Its probably a problem with Windows 7 Git Bash Shell

I read somewhere : sending output through a pipe is broken with Git Bash

To discard it run the following command :

node -p -e "Boolean(process.stdout.isTTY)" 

For it to work you need the following output : true


Solution (for Windows):

$ node -p -e "Boolean(process.stdout.isTTY)" false 

Using the winpty tool, it creates a hidden console and marshals I/O between it and Cygwin/GitBashshell emulated pty :

$ winpty node -p -e "Boolean(process.stdout.isTTY)" true 

READ MORE : Node.js doesn't run as tty on windows / cygwin Issue#3006

5

I had same problem on console "stdout is not a tty"

This because of console, while installing Git there is an option which is choosing default terminal. Install again Git and choose terminal as Windows console and after that it should be fine.

enter image description here

1

If you use GitBash in Windows

In the file ./bash_profile you must add that :

alias docker='winpty -Xallow-non-tty -Xplain docker' 

Just switch from git bash to cmd first

$ cmd 

node generateData.js > db.json runs on Visual Studio Code's Terminal : bash

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.