删除 node_modules 后如何解决 npm install 问题

Posted

技术标签:

【中文标题】删除 node_modules 后如何解决 npm install 问题【英文标题】:How do I solve npm install issue after deleting node_modules 【发布时间】:2022-01-14 19:06:31 【问题描述】:

我正在尝试清理我的 react-native 项目的包,以便在基于 MacOS 的系统上进行干净的 npm 安装(我用于 android 开发的 Windows 系统在清理包版本方面没有问题)。

我开始在 npm 安装中看到错误,抱怨不兼容的版本差异,并列出了“rook 项目”和 node_modules/ 目录中每个包的版本之间的差异。

我通过删除 package-lock.json 进行常规修复,删除 node_modules 目录并重新运行 npm install。从我的项目文件夹中。它立即提出了同样的错误投诉。问题是这样,我的项目文件夹中没有 node_modules ,因为我删除了它。并且它没有创建新的 node_modules 目录。

鉴于这个问题,我该如何调试和修复它?我想知道的问题:

    如何告诉 npm 告诉我它认为根项目的价值是什么(完整路径)? 如何告诉 npm 告诉我它似乎看到的 node_modules 目录的完整路径在哪里? 最后,我如何强制 npm 做正确的事情并专注于我的项目的附属品,而不是像看起来那样查看项目文件夹之外?

我的一些想法。我不明白为什么要在根项目和 node_modules 之间进行包 cersion 比较?

似乎 nodde 和 npm 在 MacOS 环境中做的事情与在我的 windows 系统环境中做的事情不同——我不明白这个。

这里的任何人都可以帮助我了解发生了什么以及如何解决它?

此处的错误输出:

thomas@Presonus americanaradio % npm install
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: AmericanaRadio@0.0.2
npm ERR! Found: react@16.14.0
npm ERR! node_modules/react
npm ERR!   react@"^16.13.1" from the root project
npm ERR!   peer react@"^16.8" from
@react-native-community/async-storage@1.12.1
npm ERR!   node_modules/@react-native-community/async-storage
npm ERR!     @react-native-community/async-storage@"^1.12.1" from the
root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"17.0.2" from react-native@0.66.4
npm ERR! node_modules/react-native
npm ERR!   react-native@"^0.66.3" from the root project
npm ERR!   peer react-native@">=0.59" from
@react-native-community/async-storage@1.12.1
npm ERR!   node_modules/@react-native-community/async-storage
npm ERR!     @react-native-community/async-storage@"^1.12.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.
npm ERR!
npm ERR! See /Users/thomas/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/thomas/.npm/_logs/2021-12-10T15_47_02_669Z-debug.log
thomas@Presonus americanaradio %

这里的package.json内容:

END)
 "name": "AmericanaRadio",
 "version": "0.0.2",
 "private": true,
 "scripts": 
   "android": "react-native run-android",
   "ios": "react-native run-ios",
   "start": "react-native start",
   "test": "jest",
   "lint": "eslint ."
 ,
 "dependencies": 
   "@react-native-community/async-storage": "^1.12.1",
   "@react-native-community/checkbox": "^0.5.2",
   "@react-native-community/masked-view": "^0.1.10",
   "@react-native-community/slider": "^3.0.3",
   "node-fetch": "^2.6.1",
   "react": "^16.13.1",
   "react-native": "^0.66.3",
   "react-native-background-timer": "^2.4.1",
   "react-native-elements": "^3.4.2",
   "react-native-gesture-handler": "^1.9.0",
   "react-native-keyboard-aware-scroll-view": "^0.9.5",
   "react-native-reanimated": "^2.2.4",
   "react-native-safe-area-context": "^3.1.9",
   "react-native-screens": "^2.15.2",
   "react-native-simple-survey": "^3.1.2",
   "react-native-swift": "^1.2.1",
   "react-native-vector-icons": "^8.0.0",
   "react-native-version-check": "^3.4.2",
   "react-native-version-info": "^1.1.0",
   "react-native-webview": "^11.3.1",
   "react-navigation": "^4.4.3",
   "react-navigation-drawer": "^2.6.0",
   "react-navigation-stack": "^2.10.2",
   "react-usestateref": "^1.0.8",
   "socket.io-client": "^4.4.0"
 ,
 "devDependencies": 
   "@babel/core": "^7.12.10",
   "@babel/runtime": "^7.12.5",
   "@react-native-community/eslint-config": "^2.0.0",
   "babel-jest": "^26.6.3",
   "eslint": "^7.18.0",
   "jest": "^26.6.3",
   "metro-react-native-babel-preset": "^0.64.0",
   "react-test-renderer": "16.13.1"
 ,
 "jest": 
   "preset": "react-native"
 

~
(END)

如我的描述中所述,node_modules 目录已被删除并且运行 npm install 失败并且没有创建 node_modules 目录。因此,错误消息令人困惑,因为我的项目目录中没有包(americanaradio)。

感谢您查看此内容,希望可以从中找到解决方案。

【问题讨论】:

你应该列出你在npm install得到的错误 您不应该删除 package-lock.json,它会保留实际安装的依赖项。 请在您的问题中附上错误日志详细信息 【参考方案1】:

首先检查哪个库出现错误,然后尝试重新安装或更新该版本。也尝试删除节点模块。然后执行 npm install。

【讨论】:

感谢您的建议。如上面的正文所述,我已经明确表示我已经删除了 node-modules 并运行了 npm install ——这通常是一个标准过程。但是看看图书馆是一个很好的建议。我看到了其他一些想法,例如删除包含项目副本的主目录中存在的 .react-native-cli 文件夹。还在调试....

以上是关于删除 node_modules 后如何解决 npm install 问题的主要内容,如果未能解决你的问题,请参考以下文章

即使在删除 node_modules 和 npm install 后安装新包时也无法修复编译错误

npm i 报错 'match' of undefined 错误以及删除node_modules失败

安装react后运行报错

更新 npm 后 node_modules 中的错误?

Vue 删除 node_modules 重新安装报错

如何解决npm脚本卡主不执行的问题