随着Vue等前端框架的兴起,现在越来越多的项目采用前后端分离的模式进行开发。对于老吴这种有些年头的码农也带来了一些开发上问题,这篇文章主要记录再使用npm
过程中的一些奇怪问题。前端传授了一个神技:清缓存->删node_modules->升级npm->升级node,这一套组合拳下来能解决绝大多数问题。不过还是写篇文章记录一下遇到的问题处理过程,以便下次遇到能快速接解决。
npm error code ERESOLVE问题解决
前端项目在执行npm install
的时候报错了,异常信息如下:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
解决方案
网上说是npm版本太高了。
参考:npm error code ERESOLVE问题解决
然后就对npm进行了降级,降级方法参照下文中npm降级。
降级后确实没有再报code ERESOLVE
的错误了,但是却报了新一个新的错误:code EINTEGRITY
。
npm降级
查看一下本机npm版本:
> npm version
{
npm: '7.13.0',
node: '14.17.0',
......
}
发现本地安装的是7.13.0
版本的npm,执行降级语句,将版本变成6:
> npm install npm@6 -g
added 2 packages, removed 236 packages, and changed 3 packages in 24s
再次查看一下npm版本:
> npm version
{
npm: '6.14.13',
......
}
npm error code EINTEGRITY问题解决
本以为解决了code ERESOLVE
就可以启动项目了,结果报了下面这个错误:
npm ERR! code EINTEGRITY
npm ERR! sha512-v+U9OVSyF/qanqXrlZrMCY3EuYzXhetkXq5qMha6H3wOaZHlYTQyfPa5+P7bhUQDSlgjgx2GIZ6NB+uvieu2Zg== integrity checksum failed when using sha512: wanted sha512-v+U9
OVSyF/qanqXrlZrMCY3EuYzXhetkXq5qMha6H3wOaZHlYTQyfPa5+P7bhUQDSlgjgx2GIZ6NB+uvieu2Zg== but got sha512-7Qt1YlI12d+d60ZAhqqzC20dCmb2YR701bmuCG0bMECRJKiaNuoop0NbXQ9YxuYKSSXS
kz2JhN883d7Xm0IeJA==. (4299961 bytes)
解决方案
网上说是下载npm包是进行包的哈希检测导致的。
参考:解决code EINTEGRITY
这篇文章中的解决方案说是要删除node_modules
目录啥的,但是我的项目里面没得。我估摸着他这个方案可能解决不了,有查到了另一个篇文章一条命令解决:
> npm install -g npm
> npm cache verify
参考:npm ERR! code EINTEGRITY 解决方案
结果,上述方法均为解决我的问题!!!!
究极解决方案
- 卸载
nodejs
- 删除
npm
相关文件夹,我的目录在C:\Users\Administrator\AppData\Roaming
下面,找到npm
和npm-cache
。删除,然后清除回收站。
- 重新安装
nodejs
- 升级
npm
到最新版
这个问题有结论了(2021-7-6)
最后经排查为研发环境仓库中包有问题,由该包的开发团队重新提供包后得以解决。
替换步骤为:
- 删除本地node_modules中对应文件夹
- 将开发团队给的包替换进去
- 删除package-lock.json文件
npm cache clean --force
npm cache verify
npm install --registry=xxxxxx --force
终于解决了。。。。。。