【问题标题】:Unable to install node_modules in Express js无法在 Express js 中安装 node_modules
【发布时间】:2022-09-29 10:50:41
【问题描述】:

我尝试从 package.json 文件安装node_modules,但出现错误。

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: nfttoken@1.0.0
npm ERR! Found: mongoose@5.13.15
npm ERR! node_modules/mongoose
npm ERR!   mongoose@\"^5.13.7\" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer mongoose@\"^4.1.12\" from mongoose-auto-increment@5.0.1
npm ERR! node_modules/mongoose-auto-increment
npm ERR!   mongoose-auto-increment@\"^5.0.1\" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

我的包 json 依赖项

    \"dependencies\": {
    \"express\": \"^4.17.1\",
    \"express-fileupload\": \"^1.2.1\",
    \"express-validator\": \"^6.12.1\",
    \"mongoose\": \"^5.13.7\",
    \"mongoose-auto-increment\": \"^5.0.1\",
    \"mongoose-sequence\": \"^5.3.1\",
    \"xml-formatter\": \"^2.6.1\",
    \"xml2json\": \"^0.12.0\"
  }

我该如何解决这个问题。

编辑:

我只是运行npm install 我得到了以下错误。

npm ERR! code 1
npm ERR! path <PROJECT-PATH>backend/node_modules/node-expat
npm ERR! command failed
npm ERR! command sh /tmp/install-1e860795.sh
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.0.0
npm ERR! gyp info using node@16.17.0 | linux | x64
npm ERR! gyp info find Python using Python version 3.8.10 found at \"/usr/bin/python3\"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   \'/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py\',
npm ERR! gyp info spawn args   \'binding.gyp\',
npm ERR! gyp info spawn args   \'-f\',
npm ERR! gyp info spawn args   \'make\',
npm ERR! gyp info spawn args   \'-I\',
npm ERR! gyp info spawn args   \'<PROJECT-PATH>backend/node_modules/node-expat/build/config.gypi\',
npm ERR! gyp info spawn args   \'-I\',
npm ERR! gyp info spawn args   \'/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi\',
npm ERR! gyp info spawn args   \'-I\',
npm ERR! gyp info spawn args   \'<HOME-PATH>.cache/node-gyp/16.17.0/include/node/common.gypi\',
npm ERR! gyp info spawn args   \'-Dlibrary=shared_library\',
npm ERR! gyp info spawn args   \'-Dvisibility=default\',
npm ERR! gyp info spawn args   \'-Dnode_root_dir=<HOME-PATH>.cache/node-gyp/16.17.0\',
npm ERR! gyp info spawn args   \'-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp\',
npm ERR! gyp info spawn args   \'-Dnode_lib_file=<HOME-PATH>.cache/node-gyp/16.17.0/<(target_arch)/node.lib\',
npm ERR! gyp info spawn args   \'-Dmodule_root_dir=<PROJECT-PATH>backend/node_modules/node-expat\',
npm ERR! gyp info spawn args   \'-Dnode_engine=v8\',
npm ERR! gyp info spawn args   \'--depth=.\',
npm ERR! gyp info spawn args   \'--no-parallel\',
npm ERR! gyp info spawn args   \'--generator-output\',
npm ERR! gyp info spawn args   \'build\',
npm ERR! gyp info spawn args   \'-Goutput_dir=.\'
npm ERR! gyp info spawn args ]
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: not found: make
npm ERR! gyp ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:10:17)
npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:57:18
npm ERR! gyp ERR! stack     at new Promise (<anonymous>)
npm ERR! gyp ERR! stack     at step (/usr/lib/node_modules/npm/node_modules/which/which.js:54:21)
npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:71:22
npm ERR! gyp ERR! stack     at new Promise (<anonymous>)
npm ERR! gyp ERR! stack     at subStep (/usr/lib/node_modules/npm/node_modules/which/which.js:69:33)
npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:80:22
npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
npm ERR! gyp ERR! System Linux 5.15.0-46-generic
npm ERR! gyp ERR! command \"/usr/bin/node\" \"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"
npm ERR! gyp ERR! cwd <PROJECT-PATH>backend/node_modules/node-expat
npm ERR! gyp ERR! node -v v16.17.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok
  • package.json 是最新的还是其他人使用一些旧节点版本创建了 package.json。询问是因为我在 2018 年创建该项目时遇到了类似的问题,并将我的节点版本降级到 12 解决了这个问题
  • @AnveegSinha 我喜欢它的旧项目。将近3年过去了。
  • 然后我相信降级节点版本会有所帮助。您可以使用 nvm 在节点版本之间轻松切换
  • @AnveegSinha 嗨,我手动安装了每个软件包,除了xml2json 之外,所有安装都没有错误。我如何在节点 v16.17,0 中安装

标签: javascript node.js express mongoose


【解决方案1】:

你读过错误吗?那个mongoose-auto-increment 库需要mongoose 的版本4,但你有mongoose 5。

您可以通过添加错误中建议的选项之一来查看是否可行,即npm i --legacy-peer-depsnpm i --force,或者您可能想要寻找声称支持Mongoose 5 的mongoose-auto-increment 的更新版本(尽管似乎不太可能,因为该库的最后一个版本是 7 年前发布的)。

【讨论】:

  • 我试过npm install --force,但我得到了同样的东西。 npm i --legacy-peer-deps 也不起作用。
  • 好吧,那么您可能应该为 mongoose-auto-increment 寻找受支持的替代方案,或者将您的 mongoose 版本降低到 4.x。
  • 好的,我将降级我的mongoose 版本。
【解决方案2】:

请您从项目的根目录中删除 node_modules 文件夹吗?

然后尝试运行

npm 安装

如果这仍然是问题。尝试再次删除 node_modules 文件夹并运行

npm i --legacy-peer-deps

如果这仍然不起作用,请尝试降级/升级包 mongoose-auto-increment

我希望这些步骤能够奏效。让我知道这个问题仍然存在。

【讨论】:

  • 我没有node_modules
  • 好的。请你运行 npm install 看看会发生什么?
  • 我编辑我的问题。我还有其他一些错误,
  • 好吧!你的系统上安装了python吗?我可以知道它的版本吗?
  • 是的,我有Python 3.8.10
【解决方案3】:

对于其他面临同样问题的人。 package.json 中的一个(或多个)依赖项与最新版本的 nodejs 不兼容。

  1. 简单的解决方案 - 使用 nvm 降级到较低版本的 nodejs
  2. 额外的工作但更好的解决方案 - 一个接一个地安装所有依赖项并找到导致错误的包并找到该包的最新替代品

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2018-08-30
    • 2014-04-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多