从Cygwin控制台启动Node.js时出现问题

lux*_*ock 14 windows emacs cygwin node.js

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

C:\>node --interactive
> console.log("Works fine");
Works fine
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从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
Run Code Online (Sandbox Code Playgroud)

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

我想使用js-comint从Emacs(从Cygwin运行)运行Node JS控制台,但我遇到了这个错误并且不知道如何解决它.

Bil*_*ick 21

它不能从cygwin控制台工作,但如果你从Windows控制台运行它将在cygwin shell中工作.只需打开命令提示符并运行Cygwin.bat即可获取shell.然后你可以运行节点.

根据这个 cygwin的控制台不是真正的控制台,它是伪装的管道.


Avn*_*mon 6

我认为这是由于在cygwin中使用win发行版引起的,因为cygwin模拟了一个*nix环境,而windows.ats的windows.js寻找的是win库而不是nix的.为了让node.js在cygwin中工作,你必须将它构建为yourslef.最新版本也不适用于cygwin.

来自官方维基的现状:尽管符合POSIX标准,但不再支持Cygwin.编译的最新版本是0.4.12

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


use*_*671 6

尝试通过ssh从Ubuntu框连接到windows/cygwing/sshd时会发生类似的问题.

修好路径后,运行

节点

似乎挂起(忽略所有输入)但通过ctrl-C响应kill

然而跑步

节点 - 交互

工作正常,除了EOF字符似乎是ctrl-Z而不是正常的unix/cygwin ctrl-D