最近刚接手一个“新”项目,
让我很无语。明明是去年起的项目,但是它所用的部分技术栈非常旧,我启动项目,控制台一堆warning报错,然后项目结构也很让我不适应,很多地方都可以用文件夹包一下来方便定位。哎,让我头大!事情的起源来自于一次依赖安装。因为业务需求,我安装一个第三方库,但是它不支持React16,然后我想着干脆就升到17吧!反正也没什么新特性应该没问题,不用改太多东西。结果终端报错,查看一下果然是那些旧依赖导致的,要是全部将他们升级到对应17的版本工作量太大!更何况有些库根本不维护了,直接选择性无视吧。。。
我的思路如下:
思路1-查看支持的版本
1. 去官网或GitHub上查看项目所用的框架版本所支持的react版本。假设我们的项目用的是Ant Design Pro 5.0版本,要求React17.0.2版本。(npm5及以上版本,--save
是默认行为,不需要显式添加)
npm install react@17.0.2 react-dom@17.0.2
1.1 我们从package.json里查看版本。
1.2 我们从node_modules中的antd的package.json查看实际我们所安装的版本!
思路2-熟练运用万能的–legacy-peer-deps和–force
2. 由于项目依赖太旧了,于是解析依赖关系时出现冲突,终端报错!
有两个方法:
2.1 旧版本的依赖项无法与新版本的npm兼容,这就需要我们后缀–legacy-peer-deps。(推荐)
--legacy-peer-deps
选项允许npm在处理peer dependencies时采用旧版本的方式,以确保与旧版本的依赖项保持兼容性。
npm install react@17.0.2 react-dom@17.0.2 --legacy-peer-deps
2.2 遇事不决后缀–force。
npm install react@17.0.2 react-dom@17.0.2 --force
思路3-刚接手新项目的报错解决方法
3. 正常情况下我们刚接手到一个新项目,如果npm install报错,有以下常用方法:
3.1 我们直接降node版本就行了!
3.2 通过其他包管理器解决,如cnpm、pnpm、yarn等等。
3.3 或许应该看看自己的npm源~然后切换成最新的淘宝镜像。
npm config get registry
原文地址:https://blog.csdn.net/Xyt1737/article/details/134598729
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_564.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!