JN_*_*bie 121 dependencies node.js npm yarnpkg
部署到 AWS 时,我遇到了纱线错误
error fs-extra@7.0.1: The engine "node" is incompatible with this module. Expected version ">=6 <7 || >=8". Got "7.0.0"
Run Code Online (Sandbox Code Playgroud)
知道这将如何解决吗?
如果我在 package.json 中指定引擎,这会解决吗
{
"engines" : {
"node" : ">=8.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 138
您可以尝试忽略引擎:
$ yarn install --ignore-engines
或者
$ yarn global add <your app> --ignore-engines
您可以通过运行查看所有可以忽略的内容:
$ 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)
Dav*_*ngo 75
您需要升级您的node版本。
我遇到了同样的问题。
如果您使用Homebrew运行:
brew update # This updates Homebrew to latest version
brew upgrade node
Run Code Online (Sandbox Code Playgroud)
如果您使用nvm运行:
nvm current node -v # Checks your current version
nvm install <version> # Example: nvm install 12.14.1
Run Code Online (Sandbox Code Playgroud)
对于上述步骤,请转到https://nodejs.org/en/download/
获取满足错误条件的版本,最新版本应该可以工作。
更详细的演练:https : //flaviocopes.com/how-to-update-node/
小智 51
一个黑客修复可以是
yarn config set ignore-engines true
Run Code Online (Sandbox Code Playgroud)
但是,如果您想要一个永久的解决方案是:
The*_*awk 22
我不建议使用这个:
% yarn install --ignore-engines
Run Code Online (Sandbox Code Playgroud)
它避免问题而不是解决问题。
一个可能的解决方案是将您的节点更新到version > 8.0.
% brew upgrade node
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用nodenv或来管理多个节点版本nvm,以防其他项目需要它们。
% 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
Run Code Online (Sandbox Code Playgroud)
Har*_*ody 21
很多答案都说设置标志来忽略版本错误。
更好的选择是使用它作为提醒,将您的节点版本更新到最新版本并受您要安装的软件包支持。
nvm install 16.16.0 # download & install locally on your system
nvm use 16.16.0 # update current project's .nvmrc file
Run Code Online (Sandbox Code Playgroud)
.nvmrc请注意,第二条命令将更新指定每个项目节点版本的本地版本。
节点生态系统周转很快,即使是“长期支持”(LTS)版本也会在大约 3 年后停止获得支持。使用此页面查看最新的 LTS 发行版本,并根据错误消息确保它与您正在安装的包所需的节点版本匹配。
cmc*_*des 12
--ignore-engines在安装包时添加后缀,如下所示:
yarn add <package_name> --ignore-engines
即使在使用最新版本多次安装 Nodejs 之后,我在 Ubuntu 上也遇到了类似的问题,它始终显示相同的旧 Nodejs 版本;我发现它每次都在安装类似的旧 Debian 软件包,即使在执行 apt-get update 命令之后
最后,我通过清除旧的 nodeJs 然后添加不同的存储库源,并使用新的发行版正常安装 nodeJs 来使其工作,如下所示:
sudo apt-get purge --auto-remove nodejs
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)
请在https://github.com/nodesource/distributions/blob/master/README.md下面找到所有 NodeJs 发行版的列表
您可能会找到其他方法来进行更新,但这个方法对我有用。
您需要运行以下命令,您的问题就会得到解决
yarn install --ignore-engines
Run Code Online (Sandbox Code Playgroud)
或者
npm install --ignore-engines
Run Code Online (Sandbox Code Playgroud)
小智 5
我建议按照错误消息所述执行操作并检查您的 Node.js 版本 ( node -v)。升级 Node.js 最简单的方法是使用n版本管理器:
$ npm install -g n
Run Code Online (Sandbox Code Playgroud)
然后安装最新 ( n latest) 或 LTS ( n lts) 版本的 Node。
| 归档时间: |
|
| 查看次数: |
122713 次 |
| 最近记录: |