2017年5月30日に Node v8 がリリースされたのでさっそくインストールしたところ、思わぬ場所でつまづいたので自分用にメモ。
発生した問題
- ndenv で Node v8.0.0 をインストールして、グローバルに設定した
% ndenv install v8.0.0
% ndenv global v8.0.0
- 作業ディレクトリに移動して、それまで使っていた Node のバージョンをローカルに設定した
% cd /path/to/project
% ndenv local v6.9.5
- なぜか webpack で css のビルドが落ちる (なぜか webpack-dev-server は問題なし)
% webpack
Hash: c1bcf7764e985de80da9
Version: webpack 1.14.0
Time: 5778ms
Asset Size Chunks Chunk Names
bundle.js 448 kB 0 [emitted] bundle
bundle.css 368 kB 0 [emitted] bundle
+ 813 hidden modules
ERROR in ENOENT: no such file or directory, scandir '/Users/[username]/path/to/project/node_modules/node-sass/vendor'
@ ./app/assets/index.js 8:0-27
node-sass が動いていない模様。
webpack-dev-server は問題なく動いていて、webpack はテストのときだけバックグラウンドで動かしていたので、気付くまで小一時間かかりました。
解決策
node-sass が Node のバージョンに依存していることが問題らしいです。rm -rf node_modules && yarn
でインストールし直して解決しました。
でもローカルは以前のバージョンのままなのに...。詳細はよく理解できておらず。