30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

nodebrewの再インストール

経緯

最近リリースされたnpm v5を試したくて、試行錯誤していた。
特にpackage-lock.jsonの挙動について、今までのnpm shrinkwrapと比較しながら勉強したかったので、$ npm i -g npm@4.0.0みたいな感じで、手元のnpmのバージョンをころころ変えていた。
そしたら、上手く動かなくなってしまった……。

Cannot find module 'safe-buffer'というエラーが出てしまい、npmを実行できない。

もともとnodebrewを使っていたので、$ nodebrew use x.x.xでNodeのバージョンを変えたりしたが、ダメだった。
バージョンによってはエラーが出なくなることもあったが、そうすると今度は、gulpを使ったビルドが上手くいかなくなる。
こんな感じでハマってしまい、もう面倒だったので、nodebrewそのものをインストールし直すことにした。

ネットに書いていることをそのままやっただけだが、また同じ状況になった時のために、書いておく。

削除

まず、nodebrewをアンインストールする。

ホームディレクトリ(/Users/UserName)の.nodebrewにインストールされているので、このディレクトリを丸ごと削除すればいい。

$ cd
$ rm -rf .nodebrew

インストール

これは、インストールの手順をもう一度行えばよい。
二行目はPATHの設定なので、PATHを削除していなければ必要ない。

$ curl -L git.io/nodebrew | perl - setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile && source ~/.bash_profile

後はnodebrewを使って、元々使っていたNodeを設定する。そうすればnpmも自動でついてくる。

これで、エラーも出ること無く、無事にnpmを実行できるようになった。
プロジェクトによっては上手くいかないこともあったが、$ rm -rf node_modulesディレクトリを削除してから$ npm iでnpmモジュールを改めてインストールすれば、解決した。

参考資料