浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

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

今日の朝にシェルを使っていつものように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が動かなくなった場合は上記の手順で再インストールしてみてください。

  • この記事いいね! (0)