私はWindows8.1でcygwinを使用してUnixシェルを使用しています。しかし、そこからnpmなどのコマンドを実行することはできません。
私はそれをするために何をすべきですか?ある種のenvvarをcygwinに追加しますか?なぜWindowsPATHを使用しないのですか?
編集:実際、私はここで問題を誤解したと思います。 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エンコーディングでも機能するように修正するために、 patch。 を送信しました。