如何忽略使用 yarn 安装 npm 依赖项时的不兼容引擎 "node" 错误?
How to ignore incompatible engine "node" error on installing npm dependencies with yarn?
鉴于此 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 失败了:
$ 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.
看来 yarn 在安装库 s3-streams@0.3.0
时遇到了问题,但我认为它会像 npm
那样安装所有依赖项。
您确实可以通过 --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
yarn config set ignore-engines true
是针对“引擎节点与此模块不兼容”问题的一次性修复。完成后,您可以执行“create-react-app my-app”
--ignore-engines
不适用于 yarn start
命令
因此有两种解决方案可以消除它。
检查您的节点版本:
node -v
检查您的 npm 版本:
npm -v
打开 package.json 并确保从 运行 上面的两个命令获得的值与 engines
中 node
和 npm
的版本相匹配] 对象。
或
您可以简单地从 package.json 文件中删除 engines
,否则它将始终检查版本是否匹配。
添加 --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
....
如果您运行遇到这个问题,可能是因为
您的系统上有多个版本的 node
。
例如,您可能有 运行 一些安装更新的命令
一个地方的节点版本,但是运行宁一个不同的版本
节点,因为它的目录在 $PATH 中位于另一个目录之前。
所以 运行
可能是个好主意
which -a node
如果 nvm 版本过时,您可以更新它,例如
特定版本:nvm install 15.4.0
鉴于此 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 失败了:
$ 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.
看来 yarn 在安装库 s3-streams@0.3.0
时遇到了问题,但我认为它会像 npm
那样安装所有依赖项。
您确实可以通过 --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
yarn config set ignore-engines true
是针对“引擎节点与此模块不兼容”问题的一次性修复。完成后,您可以执行“create-react-app my-app”
--ignore-engines
不适用于 yarn start
命令
因此有两种解决方案可以消除它。
检查您的节点版本:
node -v
检查您的 npm 版本:
npm -v
打开 package.json 并确保从 运行 上面的两个命令获得的值与 engines
中 node
和 npm
的版本相匹配] 对象。
或
您可以简单地从 package.json 文件中删除 engines
,否则它将始终检查版本是否匹配。
添加 --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
....
如果您运行遇到这个问题,可能是因为
您的系统上有多个版本的 node
。
例如,您可能有 运行 一些安装更新的命令 一个地方的节点版本,但是运行宁一个不同的版本 节点,因为它的目录在 $PATH 中位于另一个目录之前。
所以 运行
可能是个好主意which -a node
如果 nvm 版本过时,您可以更新它,例如
特定版本:nvm install 15.4.0