pnpm: command not foundエラーの解決方法
Next.jsプロジェクトでnpm run dev
を実行するとsh: pnpm: command not found
エラーが発生する問題は、主にシステムにpnpmがインストールされていないか適切に有効化されていないことが原因です。この問題を解決するための確実な方法を解説します。
問題の根本的な原因
- pnpmがシステムにインストールされていない
- プロジェクトがpnpmを要求しているが、ローカル/グローバル環境で利用できない
corepack
が有効化されていない(Node.js 16.9以降の環境)- 権限不足によるインストール失敗
注意点
- Node.js v16.9以降には
corepack
が標準搭載されています - プロジェクトに
pnpm-lock.yaml
が存在する場合はpnpmが必須
解決方法1:corepackを使用したpnpm有効化(推奨)
Node.js v16.9以降のバージョンを使用している場合、組み込みツールのcorepack
で解決可能です。
手順:
bash
# corepackを有効化
corepack enable pnpm
# pnpmのバージョンを確認(インストール検証)
pnpm -v
実行時の注意:
- 管理者権限が必要な場合あり
- Windows: PowerShellを管理者として実行
- macOS/Linux:
sudo corepack enable pnpm
- 初回実行時、自動でpnpmがインストールされます
解決方法2:npm経由でのグローバルインストール
corepack
が利用できない環境ではnpmから直接インストールします。
bash
npm install -g pnpm
インストール後、パスが通っていることを確認:
bash
# インストール場所の確認
which pnpm # macOS/Linux
where pnpm # Windows
# バージョンチェック
pnpm -v
権限エラーが発生する場合
- Unix系システム:
sudo npm install -g pnpm
- Windows: PowerShellを管理者として実行
プロジェクトで再インストール
pnpmをインストール後、プロジェクトの依存関係を再構築:
bash
# 依存パッケージのクリーンインストール
pnpm install
# 開発サーバー起動
pnpm run dev
補足:プロジェクトが特定バージョンのpnpmを要求する場合
.npmrc
やpackage.json
でバージョン指定がある時は、以下の方法で解決:
bash
# プロジェクト固有バージョンの適用
corepack prepare pnpm@latest --activate
# 特定バージョンの有効化
corepack enable pnpm@7.5.0
予防措置
- バージョン管理:
pnpm -v
で動的バージョン切り替え - 自動有効化: プロジェクトルートに
.node-version
ファイルを配置 - 環境チェック: Next.jsプロジェクトクローン後、即時実行bash
corepack enable pnpm install
この手順でcommand not found
エラーは解決します。プロジェクトごとに異なるパッケージマネージャーを使用する場合は、corepack
による管理が最も安全です。