pnpm v9.7.0
pnpm v9.7.0 がリリースされた。
https://github.com/pnpm/pnpm/releases/tag/v9.7.0
packageManager によるバージョンの切り替え
Corepack が利用する packageManager を参照して、自動的にバージョンを切り替える機能が追加された。
例えば、package.jsonに次のように指定すれば、自動的にpnpm@9.7.0が利用される。
json
{
"packageManager": "pnpm@9.7.0"
}この機能を有効化するには、manage-package-manager-versionsをtrueに設定する必要がある。
次のようにコマンドを実行する。
shell
pnpm config set manage-package-manager-versions true --location projectまたは.npmrcなどに次のように記述すればいい。
txt
manage-package-manager-versions=trueパッケージの全てのバージョンをパッチを適用する
以前からpnpmでは、pnpm patchコマンドを利用して、パッケージのコードを直接書き換えることが出来る。
次のようにコマンドを入力する。
shell
pnpm patch <package-name>出力に従ってパッチの記述やコマンドの入力を行うとpatches/<package-name>@<package-version>.patchというファイルが作成され、package.jsonには次のようにpatchedDependenciesフィールドが追加される。
json
{
"pnpm": {
"patchedDependencies": {
"<package-name>@<package-version>": "patches/<package-name>@<package-version>.patch"
}
}
}しかし、これは見て分かる通り、特定のバージョンに対してパッチを適用することしか出来ない。 つまり、パッケージのバージョンを上げるたびにパッチを適用する必要があった。
そこで、pnpm v9.7.0 ではpnpm patchコマンドでバージョンを指定しなかった場合、全てのバージョンに対してパッチを適用する機能が追加された。