npm install -g したコマンドが command not found で実行できない
グローバルインストール先の bin ディレクトリが PATH に入っていないのが典型原因。
npm prefix -g で実際のインストール先を確認し、PATH に追加するか nvm 経由の構成に揃えると解決する。
#npm#global-install#command-not-found#path#nvm
公開:
要約
npm install -g some-cli は成功するのに some-cli の実行が command not found になるのは、ほとんどの場合グローバルインストール先(prefix)の bin ディレクトリが PATH に入っていないため。
まず npm prefix -g でインストール先を確認し、PATH と突き合わせるのが最短の切り分け。
よくある原因
- bin ディレクトリが PATH に無い: Linux / macOS では
$(npm prefix -g)/bin、Windows では prefix 直下に実行ファイルが置かれるが、そこが PATH に含まれていない。 - nvm のバージョン違い: nvm は Node のバージョンごとに独立したグローバル領域を持つため、
nvm useで切り替えた先にはコマンドが存在しない。 - prefix 変更後の PATH 未更新: EACCES 対策で
npm config set prefix ~/.npm-globalと変更したのに、PATH への追記やシェル再起動をしていない。 - Windows の PATH 設定漏れ: 環境変数の編集ミスなどで npm のグローバルディレクトリが PATH から消えている。
解決策
1. インストール先を確認して PATH に追加する
npm prefix -g
# 例: /home/user/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc返ってきたディレクトリの bin(Windows は prefix 直下)が PATH に入っているかを確認する。
2. nvm のバージョンを揃える
nvm current
npm install -g some-clinpm 公式ドキュメントも nvm などのバージョンマネージャ利用を推奨している。
nvm 環境では PATH は自動で切り替わるため、「使うバージョンで入れる」ことだけ守ればよい。
3. シェルのキャッシュをクリアする
hash -rPATH を直した直後は bash / zsh がコマンドの場所をキャッシュしたままのことがある。
新しいターミナルを開くのでもよい。
4. npx で代替する
npx some-cli --versionたまにしか使わないツールなら npx で都度実行すれば PATH の問題自体が起きない。