128文字
1分
編集

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"
      }
    ]
  }
}
編集