Q. npm.rangeStrategyをpinにするとenigineもpinされてしまう
Renovateでnpm.rangeStrategyをpinにするとengineもpinされてしまう問題について解決策をまとめた。
Table of Contents
- # 解決策
例えば、Renovateが次のようなPRを投げてくることがある。マージする前に気づけばいいが、誤ってマージしてしまうと、nodeのバージョンが完全に一致していないとローカルやCIでinstallコマンドすらそのまま打てなくなってしまう。
{
"engines": {
+ "node": "16.20.1"
- "node": "^16.x"
},
}
解決策
- :pinAllExceptPeerDependencies presetを使う
https://docs.renovatebot.com/presets-default/#pinallexceptpeerdependencies
- packageRulesにルールを追加する
// renovate.json
{
"npm": {
"rangeStrategy": "pin",
"packageRules": [
{
"description": "Ignore nodejs",
"matchPackageNames": ["node"],
"matchDepTypes": ["engines"],
"rangeStrategy": "auto"
}
]
}
}