如何忽略使用yarn安装npm依赖项时出现的不兼容引擎“节点”错误?

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

鉴于此

package.json

{
  "name": "yarn-install-fail",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {},
  "author": "",
  "license": "ISC",
  "dependencies": {
    "aws-sdk": "2.x.x",
    "s3-streams": "^0.3.0"
  }
}

我可以通过npm成功安装依赖项:

$ npm install

added 27 packages in 1.844s

但是纱线失败了:

$ yarn install
yarn install v0.24.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version "^1.2.0".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

看起来yarn在安装库时遇到了麻烦

[email protected]
,但我认为它会像
npm
那样回退安装所有依赖项。

node.js npm npm-install yarnpkg
6个回答
197
投票

你确实可以通过 --ignore-engines:

忽略此类错误
$ yarn install --ignore-engines
yarn install v0.24.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 1.41s.

这也记录在命令的帮助中:

$ yarn help | grep -- --ignore
    --ignore-scripts                  don't run lifecycle scripts
    --ignore-platform                 ignore platform checks
    --ignore-engines                  ignore engines check
    --ignore-optional                 ignore optional dependencies

89
投票

yarn config set ignore-engines true
是针对“引擎节点与此模块不兼容”问题的一次性修复。完成后,您可以执行“create-react-app my-app”


10
投票

--ignore-engines
不适用于
yarn start
命令

因此有两种解决方案可以摆脱它。

检查您的节点版本:

节点-v

检查你的 npm 版本:

npm -v

打开 package.json 并确保运行上述两个命令获得的值与

node
对象中的
npm
engines
的版本匹配。

您可以简单地从 package.json 文件中删除

engines
,否则它将始终检查版本是否匹配。


7
投票

添加

--ignore-engines
以删除错误

 $ yarn help 
....
    --ignore-scripts                  don't run lifecycle scripts
    --ignore-platform                 ignore platform checks
    --ignore-engines                  ignore engines check
    --ignore-optional                 ignore optional dependencies
....


2
投票

如果您遇到这个问题,可能是因为 您的系统上有多个版本的

node

例如,您可能运行了一些安装更新的命令 版本的节点在一处,但运行不同版本的 节点,因为它的目录位于 $PATH 中的另一个目录之前。

所以跑步可能是个好主意

which -a node

如果nvm版本过时,您可以更新它,例如 特定版本:

nvm install 15.4.0


0
投票

我发现执行此操作的最简洁方法是在

.yarnrc
文件旁边创建一个名为
package.json
的文件,其中包含以下内容:

ignore-engines true

这仅将设置与您的项目联系起来(无需进行全局更改),并且它也会提交到您的存储库中。它还允许您在将来不需要时删除该设置。

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