Reputation: 185
I have no trouble running node.exe from a regular command prompt:
C:\>node --interactive
> console.log("Works fine");
Works fine
But when I try to do the same thing from a Cygwin console, I run into this:
Olli@Olli-MBRr /cygdrive/c
$ node.exe
events.js:72
throw er; // Unhandled 'error' event
^
Error: read ENOTCONN
at errnoException (net.js:900:11)
at Socket._read (net.js:391:21)
at Socket.Readable.read (_stream_readable.js:320:10)
at Socket.read (net.js:293:43)
at new Socket (net.js:185:10)
at process.stdin (node.js:660:19)
at startup (node.js:145:16)
at node.js:901:3
At first I thought it might be because Cygwin has trouble with the path name with a space in it (C:\Program Files\nodejs), but after installing node.js to a directory with no spaces in the path name I was unable to resolve the problem.
I would like to run a Node JS console from Emacs (run from Cygwin) using js-comint, but I ran into this error and have no clue how to resolve it.
Upvotes: 14
Views: 14039
Reputation: 8125
Using rlwrap node --interactive
solved it for me. The --interactive
switch keeps it from hanging, and rlwrap
fixes quirks with history navigation, etc.
Note: you may need to install rlwrap
through Cygwin's package manager.
Upvotes: 0
Reputation: 1506
I think this is caused by using the win distro in cygwin , since cygwin emulates a *nix environment and node.js for windows looks for the win libraries not the nix ones. In order for node.js to work in cygwin you have to build it yourslef. Also latest versions do no work on cygwin.
Current status from official wiki: Cygwin is no longer supported, despite being POSIX compliant. The latest version that compiles is 0.4.12
https://github.com/nodejs/node/wiki/Installation#building-on-cygwin
Upvotes: 6
Reputation: 996
A similar problem happens when trying to connect from Ubuntu box to windows/cygwing/sshd over ssh.
After fixing the path, running
node
seem to hang (ignore all input) but respond to kill by ctrl-C
However running
node --interactive
works fine, except the EOF character seems to be ctrl-Z rather then the normal unix/cygwin ctrl-D
Upvotes: 6
Reputation: 975
It won't work from a cygwin console, but it WILL work in a cygwin shell if you run it from a windows console. Just open a command prompt and run Cygwin.bat to get the shell. Then you can run node.
According to this cygwin's console isn't a real console, it's a pipe in disguise.
Upvotes: 22
Reputation:
Node.js dropped support for Cygwin since long ago. I've tried using some older version, but it now means a lot of problems with npm
and basically every other library you can install through the manager.
What I did: wrote a Windows shell script translating paths into Windows-like paths, but it's a really quick and dirty job, so I won't share it yet. Then I symlinked this bat file in /usr/bin
and this is how I'm calling it now. Also, I think I'm starting the REPL there immediately, because the Node version that I have doesn't do it on its own by default.
I've tried building it, but the build is very messy. They've used SCons and some other library on top of it, and that library is somehow out of date now (I'm using SCons for other projects, so I didn't try to downgrade it).
Bottom line, if you just need a JavaScript interpreter in Emacs - try Mozrepl, Node.js just doesn't want to play nice with it.
Upvotes: 4