鉴于此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
那样。
答案 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
对象中npm
和engines
的版本相匹配。
或
您只需从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