【node.js】macOSをアップグレード後にnpmコマンドがzsh:command not found npmのエラーを吐いて打てなくなった時の対処法

  • 2020年7月15日
  • Mac

今日の朝にシェルを使っていつものようにnpm run buildをしようとしたところ

zsh:command not found npmというエラーが発生しnpmのコマンドが打てなくなりました。

cordovaコマンド(cordova prepare ios)も試してみたけどこちらもzsh:command not found npm

で入力失敗。昨日までは打てたのに・・・。

調べてみるとどうやらシェルのバージョンの食い違いが原因でエラーが起きていることが分かりました。

 

mojaveまではデフォルトシェルがbashだったのですが、catalinaからはzshがデフォルトに

変わるみたいです。当然パスも変わるので今までのbashのパスでzshシェルを

通そうとするとパスが違うということでnot foundとなってしまうみたいですね。

macOSをmojaveからcatalinaに更新して数日経っていたのでその更新のタイミングが

偶々今日の朝だったという訳ですね。

 

こちらの対処法につきましては、homebrewをインストール後nodebrewをインストールして

適当なバージョンのnodeを入れるだけ。具体的な手順は以下の通りです。

↓シェルにて入力

//最初に以下のscriptを入力
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

//Homebrewを使ってnodebrewをインストール
brew install nodebrew
nodebrew -vでインストールされているか確認してみてください。

//以下を実行するとインストール可能なnodeのバージョンが一挙表示されるので
この中から適当なバージョンを選びます。確認できたら④番でインストール開始
nodebrew ls-remote

//例としてv11.13.0をインストール
nodebrew install-binary v11.13.0
もしくはnodebrew install-binary stable

nodebrew lsでバージョンを確認。選んでバージョンが表示されればnodeインストール成功。
バージョンの下にcurrent: noneと表示されるのでnodebrew use v11.13.0で
使えるようにする。

⑥今回のエラーで最も関連性が高い箇所。zshのパスを通します。
cataklinaはzshが標準なので以下のように~/.zprofileでパスをつなぎます。
echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.zprofile

今まではbashにパスを通していました。
//これは通用しない
echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.bash_profile

⑦ターミナルを再起動。その後node -vでバージョンが確認。確認してnpm run buildが

作動すれば晴れてインストール成功になります。

実際はパスが違っていただけなので難しい手順は必要なくすんなり動きましたね。

osを更新して突然npmが動かなくなった場合は上記の手順で再インストールしてみてください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG