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

时间:2017-07-13 18:04:15

标签: node.js npm npm-install yarnpkg

鉴于此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 s3-streams@0.3.0: 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.

似乎纱线在安装库s3-streams@0.3.0时遇到了问题,但我认为它会安装所有依赖项,如npm那样。

5 个答案:

答案 0 :(得分:47)

您确实可以通过--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

答案 1 :(得分:9)

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

答案 2 :(得分:1)

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

因此,有两种解决方案可以解决这个问题。

使用以下方法检查您的节点版本:

节点-v

使用以下方法检查您的npm版本:

npm -v

打开package.json,并确保从运行以上两个命令获得的值与node对象中npmengines的版本相匹配。

您只需从package.json文件中删除engines,否则它将始终检查版本是否匹配。

答案 3 :(得分:0)

添加--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
....

答案 4 :(得分:0)

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

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

所以运行可能是个好主意

which -a node

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