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