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
これでバージョン番号が返されるはずです。