zsh: command not found: npm
というエラーは、Zshシェル(macOSのデフォルトシェルであり、Linuxでもよく使われます)が、コマンドを実行するために探すディレクトリのリスト(これをPATH環境変数と呼びます)にnpm
の実行ファイルを見つけられないことを意味します。
このエラーが発生する主な理由は以下のいずれかです。
- Node.js(および
npm
)がインストールされていない。 npm
はNode.jsにバンドルされているパッケージマネージャーです。 - Node.js(および
npm
)はインストールされているが、そのインストール場所がシェルのPATHに含まれていない。 そのため、あなたがnpm
と入力しても、シェルがどこを探せば良いか分からない状態です。 - インストールが破損しているか、不完全である。
ステップ1: Node.jsとnpmがインストールされているか確認する
まず、Node.jsとnpm
がシステムに認識されているか確認しましょう。ターミナルを開いて、以下のコマンドを実行します。Bash
node -v
npm -v
- 両方のコマンドがバージョン番号を返す場合(例: Nodeが
v20.12.2
、npmが10.12.0
など):Node.jsとnpm
はインストールされています。問題はPATHの設定にある可能性が高いので、ステップ3に進んでください。 - どちらか一方、または両方のコマンドが
zsh: command not found
などのエラーを返す場合:Node.jsとnpm
が適切にインストールされていないか、設定されていません。ステップ2に進んでください。
ステップ2: Node.js(とnpm)をインストールする
Node.js(とそれに含まれるnpm
)をインストールする最も一般的でおすすめの方法は、パッケージマネージャーを使用することです。
オプションA: Homebrewを使用する(macOSにおすすめ)
Macをご利用の場合、Homebrewはパッケージを管理するのに最も簡単な方法です。
-
Homebrewをインストールする(まだの場合):
ターミナルを開き、以下のコマンドを貼り付けて実行します。
Bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
画面の指示に従ってください。ユーザーパスワードの入力が求められる場合があります。
-
Node.jsをインストールする:
Homebrewがインストールされたら、以下のコマンドを実行します。
Bash
brew install node
HomebrewがNode.jsの最新LTS(Long Term Support)バージョンとそのバンドルされたnpm
をダウンロードしてインストールします。
-
インストールを確認する:
インストールが完了したら、現在のターミナルウィンドウを閉じて、新しいターミナルを開いてください。これは、Homebrewが行ったPATHの変更がシェルに反映されるようにするためです。その後、以下を実行します。
Bash
node -v
npm -v
これで両方のバージョン番号が表示されるはずです。まだ表示されない場合は、ステップ3に進んでください。
オプションB: nvm
を使用する(柔軟性を求めるすべてのOSにおすすめ)
nvm
(Node Version Manager)は、システム上に複数のNode.jsバージョンをインストールして管理できるため、異なるNodeバージョンを必要とする複数のプロジェクトで作業する場合に非常に便利です。
-
nvm
をインストールする:
Bashcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
このスクリプトがnvm
のインストールを実行します。
-
Zsh用に
nvm
を設定する:
インストーラースクリプトは通常、新しいターミナルを開くたびにnvm
をロードするために、シェルの設定ファイル(~/.zshrc
または~/.zprofile
)にいくつかの行を追加するように指示します。これらの行は通常以下のようになります。
Bashexport NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
~/.zshrc
ファイル(または、ログインシェルを主に使用する場合は~/.zprofile
)をテキストエディタ(例: nano
)で開きます。
Bashnano ~/.zshrc
上記の行をファイルの末尾に追加します。保存して終了します(nanoの場合: Ctrl+X, Y, Enter)。
-
変更を適用し、
nvm
でNode.jsをインストールする:
現在のターミナルを閉じて新しいターミナルを開くか、以下を実行します。
Bashsource ~/.zshrc
次に、nvm
を使ってNode.jsのバージョンをインストールします。最新のLTS(Long Term Support)バージョンをインストールすることをおすすめします。
Bashnvm install --lts
nvm use --lts
特定のバージョンをインストールすることもできます: nvm install 20
特定のバージョンを使用するには: nvm use 20
-
インストールを確認する:
Bash
node -v
npm -v
これでバージョン番号が表示されるはずです。
ステップ3: PATHの問題をトラブルシューティングする(Node/npmがインストールされているのに見つからない場合)
Node.jsとnpm
がインストールされているのに、node -v
やnpm -v
がまだcommand not found
を返す場合、問題はnpm
の実行ファイルがあるディレクトリがシェルのPATHに含まれていないことです。
-
node
がどこにインストールされているかを見つける:
node
実行ファイルのパスを見るには、以下のコマンドを実行します。
Bashwhich node
典型的な出力は以下のようになります。
/usr/local/bin/node
(Intel MacでのHomebrewや手動インストールで一般的)/opt/homebrew/bin/node
(Apple Silicon Mac – M1/M2/M3でのHomebrewで一般的)/Users/あなたのユーザー名/.nvm/versions/node/vX.Y.Z/bin/node
(nvm
経由でインストールした場合)
npm
の実行ファイルは通常、node
と同じbin
ディレクトリにあります。
-
現在のPATHを確認する:
Bash
echo $PATH
これは、シェルがコマンドを検索するディレクトリのコロン区切りのリストを表示します。ステップ3.1で見つかったディレクトリ(例: /usr/local/bin
、/opt/homebrew/bin
、またはnvm
のbin
パス)がこのリストに含まれていることを確認してください。
-
正しいディレクトリをPATHに追加する(もし不足している場合):
-
Apple Silicon(M1/M2/M3)のHomebrewを使用している場合:
~/.zshrc
(または~/.zprofile
)を開き、以下の行が存在することを確認してください。
Bash# HomebrewをPATHに追加 (通常はHomebrewインストーラー自体が追加します)
export PATH="/opt/homebrew/bin:$PATH"
これは、which node
が/opt/homebrew/bin/node
を返した場合です。
-
Intel MacのHomebrewや直接インストールの場合:
もし
which node
が/usr/local/bin/node
を返した場合、これがPATHに含まれていることを確認してください。
Bashexport PATH="/usr/local/bin:$PATH"
-
nvm
を使用している場合:
nvm
のインストールスクリプトが、nvm
で管理されるNodeバージョンのPATHを正しく設定するために、必要な行を~/.zshrc
にすでに追加しているはずです。もしnvm
自体が機能しない(nvm command not found
)場合は、ステップ2、オプションB.2を見直してください。
~/.zshrc
を編集するには:
Bashnano ~/.zshrc
ファイルの最後にexport PATH
の行を追加します。保存して終了します(Ctrl+X, Y, Enter)。
-
変更を適用する:
Bash
source ~/.zshrc
または、現在のターミナルを閉じて新しいターミナルを開くだけでも構いません。
-
再度確認する:
Bash
npm -v
これでバージョン番号が返されるはずです。