引擎“节点”与此模块不兼容

时间:2019-06-16 08:16:58

标签: node.js npm dependencies 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"

任何想法都将如何解决?

如果我在package.json中指定引擎,这会解决

{ 
  "engines" : { 
    "node" : ">=8.0.0" 
  }
}

12 个答案:

答案 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/

获取一个满足您的错误条件的版本,最新版本应该可以工作。

更详细的演练:https://flaviocopes.com/how-to-update-node/

答案 1 :(得分:16)

可以修复

yarn config set ignore-engines true

但是,如果您想要永久解决方案,请执行以下操作:

  1. 删除node_modules /,package-lock.json和yarn.lock
  2. 运行yarn install或再次运行npm。

答案 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 更新到最新版本。根据您的操作系统遵循任何教程。

Upgrading Node.js to latest version

答案 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

相关问题