以我的经验,Node在cygwin中运行良好,通常在Node中有EINVAL错误的似乎是MINTTY,这是cygwin的终端仿真“皮肤”。我仍然不确定为什么这些EINVAL错误会100%发生,但是以下是我用来使节点正常工作的步骤和技巧。
在我的/cygwin/home/{username}/.bashrc中,将节点添加到路径,以便cygwin可以找到它
export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/"
如果运行节点的32位版本:
export PATH=$PATH:"/cygdrive/c/Program Files (x86)/nodejs/"
然后,要使npm在没有Windows到Linux的问题的情况下运行,我以管理员模式启动cygwin然后运行:
dos2unix '/cygdrive/c/Program Files/nodejs/npm'
此时运行文件和大多数npm软件包都可以在MINTTY中运行,尽管有时您会遇到某些npm软件包作为业力的EINVAL问题。另外,无论何时我想执行以下这些操作,您都将无法直接在MINTTY中运行解释器:
cygstart /bin/bash
这将打开一个本地cygwin
bash.exe窗口,您可以从此处运行解释器或任何导致EINVAL的麻烦的软件包命令。您必须执行此操作有些麻烦,但是我每天很少使用它,而且我非常喜欢MINTTY,所以不使用它。
还请注意,您可以通过运行类似以下内容来在MINTTY中运行任何一行节点代码:
node -e "console.log('hello node')"


