Search code examples
windowsnode.jsemacscygwin

Trouble with starting Node.js from a Cygwin console


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.


Solution

  • 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