在部署到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"
}
}
答案 0 :(得分:31)
您需要升级节点的版本。
我遇到了同样的问题。
如果您使用自制软件,请运行:
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/
获取一个满足您的错误条件的版本,最新版本应该可以工作。
答案 1 :(得分:16)
可以修复
yarn config set ignore-engines true
但是,如果您想要永久解决方案,请执行以下操作:
答案 2 :(得分:9)
在安装包时将 --ignore-engines
添加到后缀,如下所示:
yarn add <package_name> --ignore-engines
答案 3 :(得分:8)
您可以尝试忽略引擎:
$ yarn install --ignore-engines
OR
$ 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
答案 4 :(得分:7)
我的问题已通过yarn --ignore-engines
解决,但我不确定原因和方式。
答案 5 :(得分:3)
即使在使用最新版本安装 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
请在下面找到所有 NodeJs 发行版的列表 https://github.com/nodesource/distributions/blob/master/README.md
您可能会找到其他方法来进行更新,但这个方法对我有用。
答案 6 :(得分:2)
sudo npm cache clean -f
sudo npm install -g n
sudo n 10.22.1
node -v => Should be on 10.22.1
输入您需要的节点版本,因为我刚刚以 10.22.1 为例
答案 7 :(得分:1)
我建议您按照错误消息的说明进行操作并检查您的 Node.js 版本 (node -v
)。升级 Node.js 的最简单方法是使用 n
版本管理器:
$ npm install -g n
然后安装最新 (n latest
) 或 LTS (n lts
) 版本的 Node。
答案 8 :(得分:0)
我现在用旧代码发现了这个问题,但是,我用以下方法解决了它: 纱线升级
答案 9 :(得分:0)
对我有用的是将 Node 更新到最新版本。根据您的操作系统遵循任何教程。
答案 10 :(得分:0)
如果您在将 expo 网络应用程序部署到 AWS amplify 时遇到此错误,您可以尝试在 amplify 上更新节点版本。
要执行此操作,请单击 amplify 中的 Build Settings,然后单击 Edit 以更改 amplify.yml 并找到以下行:- nvm use XX
您可以尝试将其更改为 amplify 支持的最新版本,看看是否有效。在撰写本文时,它是 12。
答案 11 :(得分:-4)
在您的代码库中搜索import java.util.*;
import java.text.*;
import java.text.NumberFormat;
import java.util.Locale;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double payment = scanner.nextDouble();
scanner.close();
Locale indialocale=new Locale("en","IN");
NumberFormat india = NumberFormat.getCurrencyInstance(indialocale);
System.out.println("India: " + india.format(payment));
}
(通常在package.json中)。将其更改为>=6 <7 || >=8
。