使用
package-lock.json
生成 npm install
文件时,出现此错误:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '16.0.0' },
npm WARN EBADENGINE current: { node: 'v16.10.0', npm: '7.24.0' }
npm WARN EBADENGINE }
我在这里有点困惑。它需要 Node v16.0.0,这就是我正在使用的。 npm v7.x.x 与该版本的 Node 不兼容吗?
您正在使用 16.10.0,但消息显示它需要 16.0.0。不是 16.0.0 或更高版本。它需要完全16.0.0.
如果是您的 package.json 中的引擎字段导致了此问题,请将其更改为 16.0.0 或更高版本:
"engines": {
"node": ">=16.0.0"
},
这将允许 Node.js 16.x 及更高版本。
如果您想将其限制为 16.x 但不允许 17.x 及更高版本,您可以使用以下命令:
"engines": {
"node": "^16.0.0"
},
这个问题花了我很多时间,我最后做的是从这里下载所需版本的节点>>>https://nodejs.org/en
下载并安装新节点后,只需在项目目录中重新运行 npm install 即可。 它解决了我的问题,
在
package.lock.json
,执行以下操作:
"engines": {
"node": ">=0.7.0 <16.15.0"
}
这几乎支持所有 Nodejs npm 模块。
看到这一行
npm WARN EBADENGINE required: { node: '>= 0.8.0 < 0.11.0' },
这意味着节点引擎的范围应该在 0.8.0 到 0.11.0 之间,例如
engines": {"node": ">=0.7.0 <16.15.0"}
或 engines": {"node": ">=0.9.0 <11.15.0"}
等
我最终编辑了 package.json 中项目的“engines”条目,以精确匹配我的机器上安装的内容(我的节点和 npm 的版本都符合要求,尽管错误告诉我其他情况)。
之前(
package.json
):
"engines": {
"node": "^18.14.1",
"npm": "^9.5.0"
},
这在
npm install
上引发了以下错误:
...
npm ERR! notsup Required: {"node":"^18.14.1","npm":"^9.5.0"}
npm ERR! notsup Actual: {"npm":"9.6.1","node":"v19.7.0"}
npm ERR! A complete log of this run can be found in:
...
之后:
"engines": {
"npm": "9.6.1",
"node" : "v19.7.0"
},
铌。我根据对原始问题的评论在版本号中包含了“v”(尽管我没有确认这是否是问题所在)。