Last Modified:
Cygwinでnpmが使えるようにパッチ書いた #Cygwin #Nodejs
- node-v4.4.5
- npm-2.15.5
Nodejs的にCygwinはサポート外なのでしょうがないと言えばしょうがないんですが、
- Git for Cygwinが動かない
- npm scripts経由で起動したプロセスをCtrl-Cで殺せない
という問題があって非常に使いにくい。
解決方法
Git for Cygwinが動かない
このissueに上がってるパッチが当たらなかったので修正しました。
npm scripts経由で起動したプロセスをCtrl-Cで殺せない
win32の場合にcmd.exe経由で起動するような処理なっていたため、Cygwinの場合はその処理を通らないようにしました。
それぞれパッチを作ってシェルスクリプトにしました。
$ curl -L https://gist.github.com/robario/4ca8ee84019492f951d5b3a49f5c6fc3/raw | sh
これでCygwinでも(だいたい)普通にnpmが使えます。
- npm version ... でエラー"fatal: [FOLDER] is outside repository"になっていたのを修正した
- 原因はGit for Cygwinが/home/$USERと/cygdrive/c/Users/$USERを別物と考えるため。
- Gitコマンドに応じて相対パスが必要かどうか変わるため、
clone
以外は相対パスに変換するように修正 - ルートフォルダーを経由するようなパスの場合に不具合が起きる気がしないでもないが、その辺りまで対応しようとするとCygwinのmount情報を読み取らないといけなくなりそうだったので無視することにした。
--template=C:\\...
のような引数に対応