在部署到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"
}
}
当前回答
这比表面上看起来更有问题。
如果您包含一个需要节点6的模块,但您有其他使用节点11的模块,您将得到这个错误!
当你使用nom/yarn/等第三方模块时,这是有问题的。要安装,因为如果不做git fork,你就无法访问这些包回购。
在我的例子中,我使用yarn工作区和包中的一些模块。工作区中的Json文件可能需要foo 1.0,而其他文件则需要foo 2.0, 1.0版本可能需要节点6,2.0版本可能需要节点14。
我发现的唯一解决方案是使用——ignore-engines,尽管这显然是其他人发布的——这并不能解决问题,只是忽略它,尽管可能会导致任何问题(节点6的代码可能无法在节点14上运行!)
其他回答
对我来说,有效的方法是将Node更新到最新版本。根据您的操作系统选择任何教程。
升级Node.js到最新版本
你可以试试:
打开package.json 找到 "engines": {"node": "14.单击“确定”。x "} 改变14。X -> >=14.x
你可以试着忽略引擎:
$ yarn install—忽略引擎
OR
$ yarn global添加<你的应用>—忽略引擎
通过运行以下命令,你可以看到所有你可以忽略的内容:
$ 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
这比表面上看起来更有问题。
如果您包含一个需要节点6的模块,但您有其他使用节点11的模块,您将得到这个错误!
当你使用nom/yarn/等第三方模块时,这是有问题的。要安装,因为如果不做git fork,你就无法访问这些包回购。
在我的例子中,我使用yarn工作区和包中的一些模块。工作区中的Json文件可能需要foo 1.0,而其他文件则需要foo 2.0, 1.0版本可能需要节点6,2.0版本可能需要节点14。
我发现的唯一解决方案是使用——ignore-engines,尽管这显然是其他人发布的——这并不能解决问题,只是忽略它,尽管可能会导致任何问题(节点6的代码可能无法在节点14上运行!)
您需要升级node的版本。
我也遇到了同样的问题。
如果你使用Homebrew运行:
brew update # This updates Homebrew to latest version
brew upgrade node
如果你使用nvm运行:
nvm current node -v # Checks your current version
nvm install <version> # Example: nvm install 12.14.1
以上步骤请访问https://nodejs.org/en/download/
获取一个满足错误中的条件的版本,最新的版本应该可以工作。
更详细的演练:https://flaviocopes.com/how-to-update-node/