Node.js
windows7
gulp
nodist
gulp-sass

npm install gulp-sass でエラー

gulpfile.jsをmacで環境セッティングして、別端末のwindowsで npm install したところ、 'gulp-sass' のインストールでこけてハマったのでメモ。

過去のインストーラーを完全にアンインストールできていなかったというケースなので、これで解決できるかは場合によるとおもいます。

環境

  • windows 7 64bit
  • node.jsを公式インストーラー で入れている (node v0.12.0)
  • nodeのバージョンをプロジェクトによって変えたくなったので nodist を採用 (node 6系/7系/8系 などを切り替えながら利用)
  • nodist を入れる場合には通常、インストーラーで入れたnodejsはアンインストールしておくべきだがアンインストールがうまくいっていなかった

現象

  • node_module をインストールするために 'npm install' を実行するも、利用している gulp-sass のインストールがうまくいかないとエラーがでる
  • 個別に npm install gulp-sass を打ってもインストールできない
  • nodist のバージョンをさまざまに切り替えてもエラーは変わらず

2017-11-08_18h48_01.png

考察/要因

  • nodistでバージョンを切り替えていたけれど、過去に公式インストーラーで入れたものがうまくアンインストールされていなくて、変数が残っていた模様
  • npm config list で確認してみる
    2017-11-08_18h33_08.png
  • nodist によるバージョンを変えても user-agent = npm/2.5.1 node/v0.12.0 win32 x64 とか node bin location = C:\Program Files\nodejs\\node.exe が変化無かった
  • nodeのバージョンを変更しているはずなのに user-agent が変更されないのが非常にあやしい

対処

  • node bin location = C:\Program Files\nodejs\\node.exe というのがどうも過去の exe を参照している風に見えるので思い切ってフォルダを削除(は怖いのでリネーム)
    2017-11-08_18h35_20.png

結果

  • user-agentnode bin location も nodist によるバージョン切り替えに合わせて変わるようになった
    2017-11-08_18h36_43.png
  • これにより npm install gulp-sass も無事インストールすることができた