LoginSignup
25
11

zsh: command not found: npmが出た時の対処法

Last updated at Posted at 2022-03-23

ある日、npmコマンドを打つとzsh: command not found: npmとエラーが出ました。

$ npm -v
zsh: command not found: npm

npmコマンドが一切使えなくなってしまいました。

この記事では解決までに行った方法を共有します。
結論を先に話すと、nodeをインストールし直すことで解決しました。

環境はmacOS Montereyです。

nodebrewがインストール済みか確認する

nodebrewと打って確認します。
色々と表示されれば問題ないです。一番上の行にバージョンの記載が出ます。

$ nodebrew
nodebrew 1.2.0

Usage:
~~~

nodebrewをインストールする

もしnodebrewが入っていなけばHomebrewを使用してインストールします。

$ brew install nodebrew

Homebrewが入っていなれば下記コマンドでHomebrewのインストールができます。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

上記のコマンドは公式からのコピーですが、不安な方は直接公式からコマンドをコピーしてきてください。
https://brew.sh/index_ja

nodeをインストールして使用するバージョンを指定する

nodeをインストールします。

$ nodebrew install-binary stable

// 補足
stable 最新の安定版
latest 最新版
vXX.XX.X バージョン直接指定

nodebrew installでもインストールは可能ですが、install-binaryのほうがインストール時間が短いです。

nodeがインストールがされたかをnodebrew lsで確認します。

$ nodebrew ls
v16.14.2

current: none

currentに表示されるのが現在使用中のバージョンになります。
この場合はcurrentがnoneになっていて、v16.14.2がインストールされていますが使用するように設定されていない状態です。

nodebrew useで使用するバージョンを指定します。
こちらもinstall時同様、stablelatestで指定することも可能です。

$ nodebrew use v16.14.2

or
$ nodebrew use stable
$ nodebrew use latest

これで完了です。
確認してみます。

$ nodebrew ls
v16.14.2

current: v16.14.2
$ node -v
v16.14.2

指定したバージョンが使用されているのが確認できました。
npmコマンドも打てるようになっていました。

$ npm -v                        
8.5.0

原因は何?

インストールされていたはずのnodeがインストールされていない状態になっていたことが原因でした。
数日前まで問題なくnpmコマンドが打てていたのに、ある日突然といった形です。
なぜ突然このような現象が発生したのかは判明しませんでした。
同じエラーがmacのアップデートによって発生したとの報告が何件かあるようなので、そちらの可能性が高いと思っています。

pathを通せば解決する?

エラー文で検索するとpath関係が原因だと書いてあるサイトもいくつか出てきました。
私の場合はpathは関係なくnodeをインストールし直す形で解決しましたが、もしこの記事の方法で解決できなければpathを疑ってみるのもありかなと思います。

参考にしたサイト

https://qiita.com/sinmetal/items/154e81823f386279b33c
https://github.com/hokaccha/nodebrew

25
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
11