如何向cygwin添加命令 - npm

时间:2014-01-18 16:36:20

标签: unix path cygwin environment-variables

我在Windows 8.1上使用cygwin来拥有一个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问题。

4 个答案:

答案 0 :(得分:27)

这似乎是这里提到的npm脚本的一个问题,https://github.com/joyent/node/issues/5912

假设您已在默认位置安装了nodejs,您可以运行以下dos2unix命令并修复错误。

  

dos2unix c:/ Program \ Files / nodejs / npm

这解决了我对npm脚本的问题。

答案 1 :(得分:4)

如何使用npm命令使cygwin工作

  1. 安装http://nodejs.org/#download
  2. 下载http://nodejs.org/dist/npm/
  3. 将npm.zip解压缩到node.exe
  4. 再次运行cygwin终端
  5. 就是这样!

答案 2 :(得分:3)

sed -i 's/\r//' "$(type -p npm)"

Convert line endings

尽管有评论,但这不会影响cmd.exe

的执行
$ printf '@echo hello\n@echo world\n@echo doge\n' > foo.bat

$ cmd /c foo.bat
hello
world
doge

答案 3 :(得分:1)

为了修复npm脚本甚至使用dos编码,我提交了patch.