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

k0p*_*kus 39 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"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

$ npm install

added 27 packages in 1.844s
Run Code Online (Sandbox Code Playgroud)

然而纱线失败了:

$ 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.
Run Code Online (Sandbox Code Playgroud)

看起来纱线在安装库时遇到了麻烦s3-streams@0.3.0,但我认为它无论如何npm都会安装所有依赖项.

k0p*_*kus 70

你确实可以通过--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.
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

  • 你好!我可以在npm中做这样的事情吗? (3认同)

Luk*_*ips 19

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

  • 我们将其添加到预安装任务中:`"preinstall": "yarn config setignore-engines true",`:) (3认同)

Mah*_*tap 10

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

因此有两种解决方案可以消除它。

检查您的节点版本:

节点-v

检查你的 npm 版本:

npm-v

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

或者

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


Meh*_*ala 8

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

Run Code Online (Sandbox Code Playgroud)