事象
やや古いシステムの保守を実施していた際、手順書の指定に従って Node.js のバージョン切り替えを行いました。
fnm install 18.12.0
fnm default 18.13.0
切り替え後、それまで問題なく使用できていた pnpm を実行したところ、コマンドとして認識されなくなりました。
C:\Users\hnaka>pnpm
'pnpm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
原因
Node.js のバージョンを切り替えたことで、 Corepack が無効化されたためです。
対応
新しい Node.js 環境において、Corepack を再度有効化します。
corepack enable
これだけで、再び pnpm が利用可能になります。
補足:Corepack は現時点で非推奨(の方向)
便利ではありますが、Corepack は Node.js v20 以降、標準から外される(あるいはデフォルト同梱しない)方向で議論が進んでいます。
- 現状: 同梱はされているが、デフォルトでは無効。
-
今後: 将来的には
npm install -g pnpmによるインストール、あるいは専用のセットアップ手順が推奨される可能性があります。
古いシステムの保守で Node.js のバージョンを頻繁に往復する場合、「Node を変えたら corepack enable」をセットで覚えておくとスムーズです。
環境
- fnm 1.38.1
- corepack 0.23.0
- pnpm 7.14.1