あるプロジェクトで pnpm を使っていたのだが、別のプロジェクトで Node.js のバージョンをnodebrewで変えた時、pnpmがインストールされていないとなった
そんなはずはと、Node.js のバージョンを戻してpnpmがどこにパスが通っているか調べたら、以下に通っていた
$ where pnpm /Users/ugabox/.nodebrew/current/bin/pnpm
どうやらnodebrewのcurrentバージョンに合わせて、pnpmを都度インストールするべきだったようで、以下のコマンドで再度インストールをしたら使えるようになった
$ npm install -g pnpm@目的のバージョン
これでやりたかったことは達成できたのだが、たまたま以下の記事を発見し、 corepack というものを知った
実際にはpnpmのインストール方法の一つとしてドキュメントにも記載があるので知ってはいたが、理解せぬままでいた
記事の筆者の@teppeisさんもNode.jsのバージョンごとにnpm install -g pnpmをやられていたみたいだが、2024年からはcorepackを使おうという書かれている
若干乗り遅れたが、気づけてよかった
corepack とは npm や yarn などのパッケージマネージャーを管理するツール
corepack をグローバルインストールしておけば、package.jsonに以下を書いておくだけでそのバージョンが自動的に使えるようになっているというもの
... "packageManager": "pnpm@8.15.8", ...
これで、プロジェクトで利用するNode.jsのバージョンごとにインストールする必要は無くなるし、他のパッケージマネージャを使えなくすることができる
これは知れてよかったので使っていきたい