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

cal*_*eld 111 npm package.json npm-install

package-lock.json使用 生成文件时npm install,出现以下错误:

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'app@1.0.0',
npm WARN EBADENGINE   required: { node: '16.0.0' },
npm WARN EBADENGINE   current: { node: 'v16.10.0', npm: '7.24.0' }
npm WARN EBADENGINE }
Run Code Online (Sandbox Code Playgroud)

我在这里有点困惑。它需要 Node v16.0.0,这就是我正在使用的。npm v7.xx 与该版本的节点不兼容吗?

Tro*_*ott 88

您正在使用 16.10.0,但消息显示它需要 16.0.0。不是 16.0.0 或更高版本。它正好需要16.0.0。

如果您的 package.json 中的引擎字段导致了此问题,请将其更改为 16.0.0 或更高版本:

  "engines": {
    "node": ">=16.0.0"
  },
Run Code Online (Sandbox Code Playgroud)

这将允许 Node.js 16.x 及更高版本。

如果您想将其限制为 16.x 但不允许 17.x 及更高版本,您可以使用以下命令:

  "engines": {
    "node": "^16.0.0"
  },
Run Code Online (Sandbox Code Playgroud)

  • 如果您在 `package.json` 文件中找不到该内容,您可能需要在 `pakage-lock.json` 上执行此操作,然后再次尝试 npm install 命令 (2认同)

Toh*_*eeb 17

如果您正在使用nvm运行

nvm install 18.1.0
nvm use 18.1.0
Run Code Online (Sandbox Code Playgroud)

如果您还没有nvm安装,请按照本教程进行操作


小智 6

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

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