“npm WARN EBADENGINE”是什么原因导致的?

问题描述 投票:0回答:5

使用

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 不兼容吗?

npm npm-install package.json
5个回答
80
投票

您正在使用 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"
  },

14
投票

如果您正在使用

nvm
运行

nvm install 18.1.0
nvm use 18.1.0

如果您没有安装

nvm
,请按照此教程

操作

4
投票

这个问题花了我很多时间,我最后做的是从这里下载所需版本的节点>>>https://nodejs.org/en

下载并安装新节点后,只需在项目目录中重新运行 npm install 即可。 它解决了我的问题,


3
投票

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"}


3
投票

我最终编辑了 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”(尽管我没有确认这是否是问题所在)。

© www.soinside.com 2019 - 2024. All rights reserved.