既存のnpmパッケージの依存関係を強制的に固定したいときはnpm-force-resolutionsが使える
https://gh-card.dev/repos/rogeriochaves/npm-force-resolutions.svg https://github.com/rogeriochaves/npm-force-resolutions
例えばhoekとういうパッケージをhoek@4.2.1固定したい場合はpackage.jsonに以下の項目を足せば良い。
code:package.json
...
"scripts": {
"preinstall": "npx npm-force-resolutions"
}
...
"resolutions": {
"hoek": "4.2.1"
}
...
npmスクリプトの"preinstall": "npx npm-force-resolutions"でnpm iするときにバージョンの強制固定の処理が走るようになる。
おまけ
変更したいnpmパッケージのGitHubに行ってforkして依存関係のバージョン変えて...みたいなことはいらなくなる。というよりもこれで上手く変更してpublishせずにGitHub経由で依存できたりするケースは少ない気がする。