nodeのバージョンを下げなければならなくなった経緯
laravelのwebpackを使ったコンパイルを実行する為npm run dev
を実行したら以下の様なエラー出てきました。
Module build failed: Error: Missing binding /your/path/hogehoge/node_modules/node-sass/vendor/darwin-x64-59/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 9.x
Found bindings for the following environments:
- OS X 64-bit with Node.js 8.x
のnodeのバージョンを確認したところv9
だったので多分v8に変更しろってことなんだろうなと思いました。
nodebrewの設定
homebrewがインストールされている前提で話をすすめます。homebrewがインストールされてない方はインストールして下さい。
今まで使っていたnodeをアンインストール
homebrewでnodeをインストールして使っていた場合
homebrewでインストールしたnodeを削除
brew uninstall --force node
nodebrewをインストール
homebrewでnodebrewをインストール
brew install nodebrew
nodebrewをインストールされたか確認
nodebrew
nodebrewで使えるコマンドが出てくればOK
nodebrewでインストール可能なnodeのバージョンを確認
nodebrew ls-remote
nodebrewで使いたいバージョンのnodeをインストール
nodebrew install-binary v8.11.1
今回はv8の一番最新のバージョンを選んだ。
他にも最新の安定版をインストールしたかったstable
とする。
nodebrew install-binary stable
### nodeのインストール先のディレクトリを作る
インストールコマンドを実行したところエラーが出た。
Fetching: https://nodejs.org/dist/v8.11.1/node-v8.11.1-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /your/path/.nodebrew/src/v8.11.1/node-v8.11.1-darwin-x64.tar.gz:
Warning: No such file or directory
0.0%
curl: (23) Failed writing body (0 != 847)
download failed: https://nodejs.org/dist/v8.11.1/node-v8.11.1-darwin-x64.tar.gz
No such file or directory
と言っているのでディレクトリを作った。
$ mkdir ~/.nodebrew
$ mkdir ~/.nodebrew/src
そして再度nodeのインストールコマンドを実行したところうまくいった。
参考
https://blog.yug1224.com/archives/5693a5e0fef2539c7d5b149d
しかしよく調べたら以下のコマンドを実行することで自動でディレクトリを作ってくれるらしい。
nodebrew setup
なのでこちらで対応した方が良いと思います。
参考
http://ngzm.hateblo.jp/entry/2016/09/22/172500
nodebrewでインストールされたnodeのバージョンを確認
nodebrew ls
インストールしたバージョンのリストが表示されていればOK
v8.11.1
v9.11.1
current: none
currentのところには、使用するバージョンが表示されます。
使いたいnodeのバージョンをインストールしたバージョンのリストから選ぶ。
今回はv8.11.1
を選ぶ。
nodebrew use v8.11.1
これでv8.11.1
のnodeが使えると思ってnode -v
を実行してみたが..
bash: /usr/local/bin/node: No such file or directory
パスの設定
~/.bashrc
のファイルに以下パスを追加します。
export PATH=$HOME/.nodebrew/current/bin:$PATH
そしてパスを反映させるために以下のコマンドを実行
source ~/.bashrc
source ~/.bashrc
の一文を~/.bash_profile
に追加する
nodebrew setup
を実行したら、パスが表示される。
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew
========================================
Export a path to nodebrew:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
参考サイト
補足
nodebrewと似たような機能を持つnvmというのもある。