Skip to content

pnpm: command not foundエラーの解決方法

Next.jsプロジェクトでnpm run devを実行するとsh: pnpm: command not foundエラーが発生する問題は、主にシステムにpnpmがインストールされていない適切に有効化されていないことが原因です。この問題を解決するための確実な方法を解説します。


問題の根本的な原因

  1. pnpmがシステムにインストールされていない
  2. プロジェクトがpnpmを要求しているが、ローカル/グローバル環境で利用できない
  3. corepackが有効化されていない(Node.js 16.9以降の環境)
  4. 権限不足によるインストール失敗

注意点

  • 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を要求する場合

.npmrcpackage.jsonでバージョン指定がある時は、以下の方法で解決:

bash
# プロジェクト固有バージョンの適用
corepack prepare pnpm@latest --activate

# 特定バージョンの有効化
corepack enable pnpm@7.5.0

予防措置

  1. バージョン管理: pnpm -vで動的バージョン切り替え
  2. 自動有効化: プロジェクトルートに.node-versionファイルを配置
  3. 環境チェック: Next.jsプロジェクトクローン後、即時実行
    bash
    corepack enable
    pnpm install

この手順でcommand not foundエラーは解決します。プロジェクトごとに異なるパッケージマネージャーを使用する場合は、corepackによる管理が最も安全です。