我使用windows 8.1上的cygwin来创build一个Unix shell。 但是我不能运行npm等命令。
我该怎么做呢? 添加一些env var到cygwin? 为什么它不使用Windows PATH?
编辑:其实我认为我误解了这里的问题。 它看起来像npm是由cygwin发现,但它不能被使用。 例如,我可以毫不费力地使用cygwin的git。
$ npm /cygdrive/d/Logiciels installés/nodejs/npm: line 2: $'\r' : command not found /cygdrive/d/Logiciels installés/nodejs/npm: line 4: $'\r' : command not found /cygdrive/d/Logiciels installés/nodejs/npm: line 5: Syntax error around « $'in\r' » 'cygdrive/d/Logiciels installés/nodejs/npm: line 5: `case `uname` in
所以,它看起来更像是一个NPM问题。
这似乎是在这里提到的npm脚本的一个问题, https://github.com/joyent/node/issues/5912
假设您已经在默认位置安装了nodejs,您可以运行以下dos2unix命令并修复错误。
dos2unix c:/ Program \ Files / nodejs / npm
这解决了我与npm脚本的问题。
sed -i 's/\r//' "$(type -p npm)"
换行结束
同样,尽管评论,这不会伤害与cmd.exe
执行
$ printf '@echo hello\n@echo world\n@echo doge\n' > foo.bat $ cmd /c foo.bat hello world doge
这就对了!
为了修复npm脚本甚至在dos编码下工作,我提交了一个补丁。