一尘不染

从Cygwin控制台启动Node.js时遇到问题

node.js

我从常规命令提示符处运行node.exe没问题:

C:\>node --interactive
> console.log("Works fine");
Works fine

但是,当我尝试从Cygwin控制台执行相同的操作时,遇到了以下问题:

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

起初我以为可能是因为Cygwin在路径名称中带有空格(C:\ Program Files \
nodejs)时遇到了麻烦,但是将node.js安装到路径名称中没有空格的目录后,我无法解决问题。

我想使用js-comint从Emacs(从Cygwin运行)运行Node JS控制台,但是遇到了该错误,不知道如何解决。


阅读 339

收藏
2020-07-07

共1个答案

一尘不染

我认为这是由于在cygwin中使用win发行版引起的,因为cygwin模拟了*
nix环境,而Windows的node.js查找的是win库而不是nix的库。为了使node.js在cygwin中工作,您必须自己构建它。同样,最新版本在cygwin上不起作用。

官方Wiki的当前状态: 尽管兼容POSIX,但不再支持Cygwin。 编译的最新版本是0.4.12

https://github.com/nodejs/node/wiki/Installation#building-on-
cygwin

2020-07-07