在部署到AWS时,我得到了以下纱线错误
error fs-extra@7.0.1: The engine "node" is incompatible with this module. Expected version ">=6 <7 || >=8". Got "7.0.0"
你知道怎么解决吗?
如果我在package.json中指定引擎,这将奏效吗
{
"engines" : {
"node" : ">=8.0.0"
}
}
在部署到AWS时,我得到了以下纱线错误
error fs-extra@7.0.1: The engine "node" is incompatible with this module. Expected version ">=6 <7 || >=8". Got "7.0.0"
你知道怎么解决吗?
如果我在package.json中指定引擎,这将奏效吗
{
"engines" : {
"node" : ">=8.0.0"
}
}
当前回答
将Node.js更新到最新版本。
https://nodejs.org/en/download/
其他回答
很多答案说设置标志来忽略版本错误。
更好的选择是使用它作为提醒,将您的节点版本更新到您想要安装的包所支持的最新版本。
nvm install 16.16.0 # download & install locally on your system
nvm use 16.16.0 # update current project's .nvmrc file
注意,第二个命令将更新您的本地.nvmrc,该命令指定每个项目节点的版本。
节点生态系统更新很快,即使是“长期支持”(LTS)版本也会在大约3年后停止获得支持。使用此页面查看最新的LTS发布版本,并从错误消息中确保它与正在安装的包所期望的节点版本匹配。
有时您无法升级Node引擎(遗留项目、客户端需求等)。在这种情况下,我发现的解决方案是使用“选择性依赖解析”来降级有问题的版本,如Yarn中所述:
https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/
{
"name": "project",
"version": "1.0.0",
"dependencies": {
"left-pad": "1.0.0",
"c": "file:../c-1",
"d2": "file:../d2-1"
},
"resolutions": {
"d2/left-pad": "1.1.1",
"c/**/left-pad": "^1.1.2"
}
}
注意“决心”部分。您可以强制这些包使用降级版本(与您的旧Node引擎兼容)。
我不建议使用这个:
% yarn install --ignore-engines
它回避问题,而不是解决问题。 一个可能的解决方案是将节点更新到> 8.0版本。
% brew upgrade node
或者您可以尝试使用nodenv安装多个版本的node,以防其他项目需要它们。
% brew install nodenv
% nodenv init
# Load nodenv automatically by appending
# the following to ~/.zshrc:
eval "$(nodenv init -)"
% nodenv install 6.0.0 //or some other version
一个解决方案,就是一个黑客可以
yarn config set ignore-engines true
然而,如果你想要一个永久的解决方案是:
删除node_modules/, package-lock。Json & yarn.lock 再次运行yarn install或NPM I。
升级您的节点版本,此问题将得到解决