node.jsをインストール (zsh: command not found: npm が出力されたら)

zsh: command not found: npmというエラーは、Zshシェル(macOSのデフォルトシェルであり、Linuxでもよく使われます)が、コマンドを実行するために探すディレクトリのリスト(これをPATH環境変数と呼びます)にnpmの実行ファイルを見つけられないことを意味します。

このエラーが発生する主な理由は以下のいずれかです。

  1. Node.js(およびnpm)がインストールされていない。 npmはNode.jsにバンドルされているパッケージマネージャーです。
  2. Node.js(およびnpm)はインストールされているが、そのインストール場所がシェルのPATHに含まれていない。 そのため、あなたがnpmと入力しても、シェルがどこを探せば良いか分からない状態です。
  3. インストールが破損しているか、不完全である。

ステップ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はパッケージを管理するのに最も簡単な方法です。

  1. Homebrewをインストールする(まだの場合): ターミナルを開き、以下のコマンドを貼り付けて実行します。 Bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 画面の指示に従ってください。ユーザーパスワードの入力が求められる場合があります。
  2. Node.jsをインストールする: Homebrewがインストールされたら、以下のコマンドを実行します。 Bashbrew install node HomebrewがNode.jsの最新LTS(Long Term Support)バージョンとそのバンドルされたnpmをダウンロードしてインストールします。
  3. インストールを確認する: インストールが完了したら、現在のターミナルウィンドウを閉じて、新しいターミナルを開いてください。これは、Homebrewが行ったPATHの変更がシェルに反映されるようにするためです。その後、以下を実行します。 Bashnode -v npm -v これで両方のバージョン番号が表示されるはずです。まだ表示されない場合は、ステップ3に進んでください。

オプションB: nvmを使用する(柔軟性を求めるすべてのOSにおすすめ)

nvm(Node Version Manager)は、システム上に複数のNode.jsバージョンをインストールして管理できるため、異なるNodeバージョンを必要とする複数のプロジェクトで作業する場合に非常に便利です。

  1. nvmをインストールする: Bashcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash このスクリプトがnvmのインストールを実行します。
  2. 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)。
  3. 変更を適用し、nvmでNode.jsをインストールする: 現在のターミナルを閉じて新しいターミナルを開くか、以下を実行します。 Bashsource ~/.zshrc 次に、nvmを使ってNode.jsのバージョンをインストールします。最新のLTS(Long Term Support)バージョンをインストールすることをおすすめします。 Bashnvm install --lts nvm use --lts 特定のバージョンをインストールすることもできます: nvm install 20 特定のバージョンを使用するには: nvm use 20
  4. インストールを確認する: Bashnode -v npm -v これでバージョン番号が表示されるはずです。

ステップ3: PATHの問題をトラブルシューティングする(Node/npmがインストールされているのに見つからない場合)

Node.jsとnpmがインストールされているのに、node -vnpm -vがまだcommand not foundを返す場合、問題はnpmの実行ファイルがあるディレクトリがシェルのPATHに含まれていないことです。

  1. 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/nodenvm経由でインストールした場合)
    npmの実行ファイルは通常、nodeと同じbinディレクトリにあります。
  2. 現在のPATHを確認する: Bashecho $PATH これは、シェルがコマンドを検索するディレクトリのコロン区切りのリストを表示します。ステップ3.1で見つかったディレクトリ(例: /usr/local/bin/opt/homebrew/bin、またはnvmbinパス)がこのリストに含まれていることを確認してください。
  3. 正しいディレクトリを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)。
  4. 変更を適用する: Bashsource ~/.zshrc または、現在のターミナルを閉じて新しいターミナルを開くだけでも構いません。
  5. 再度確認する: Bashnpm -v これでバージョン番号が返されるはずです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です