package.jsonのengines
globalに使用するlibraryのversionを固定して、使用を強制する
異なる場合にerrorを出すだけで、自動的にそのversionを使用する、といった代物ではない
docsには「nodeのversion」と書かれているが、nodeに限らず指定できる
注意点としては、$ npm iしただけでは、warningが出るだけ
$ yarn installするとちゃんとerrorが出る
$ npm i --engine-string
これの強制が無理なので、.npmrcに以下を追記しておくと良い code:.npmrc
engine-strict=true
例
code:packages.json
{
"engines": {
"npm": "8.x",
"node": ">=0.10.3 <15"
}
}
↑npmの方に関しては、Corepackで指定すれば良いと思うmrsekut.icon error
code:error
npm ERR! code EBADENGINE
npm ERR! engine Unsupported engine
npm ERR! engine Not compatible with your version of node/npm: hoge0.1.0
npm ERR! notsup Not compatible with your version of node/npm: hoge@0.1.0
npm ERR! notsup Required: {"npm":"7.x"}
npm ERR! notsup Actual: {"npm":"8.19.2","node":"v18.12.1"}
enginesにnpm:7.xと指定されているが、今はnpm: 8.19.2を使っているぞ、というerror