一个vue项目npm install失败的问题解决方案

vue的项目一直是史上最难的最烦的问题,今天给别人做毕设单子想在gitee上拉项目二开的时候,由于很久没写过vue项目已经生疏了,在拿到项目之后我还是例行完成最常见的步骤:

1、npm init -y 初始化

2、npm install 用npm把这个项目的依赖包都下载了

结果就出现了npm install一直在那转就是没任何变化的现象:

1、找到问题所在

为了解决这个问题,首先我们得知道是为什么导致的,那就得输出一些日志,不然连解决的问题是啥都不知道

首先【Ctrl + C】杀掉当前运行的程序

然后输入这个命令来在安装的时候输出日志:【npm install --verbose】

然后将这个日志拿去问AI是为啥:

那么我这里AI给出的结论是我的npm下载配置文件里的【镜像源路径】(++https://registry.npm.taobao.org/++) 已经过期,也就是npm根据我这个配置文件在一直找一个不存在的路径,所以没法下载

2、针对问题解决

1)更换有效最新的npm下载镜像源

那么通用的办法就是上网搜最新的npm镜像源下载地址,比如我搜到的目前2025年最新的地址是:

复制代码
淘宝:https://registry.npmmirror.com/ 
腾讯云:https://mirrors.cloud.tencent.com/npm/ 
CNPM:https://r.cnpmjs.org/

对应执行的更换配置的命令是:

复制代码
npm config set registry [镜像源地址]

比如:
-淘宝:npm config set registry https://registry.npmmirror.com/ 
-腾讯云:npm config set registry https://mirrors.cloud.tencent.com/npm/ 
-CNPM:npm config set registry https://r.cnpmjs.org/

2)检查更换成功没有

然后检查你当前的npm配置文件的路径更换成功没有:【npm get registry】

但是这里又有问题的了,我上面的那个更换npm镜像的方法是针对 "我这个电脑的全局的npm配置文件",也就是检查整个电脑配置的全局的环境变量里npm的配置文件:【.npmrc】的配置

什么意思呢?就是我们自己的之前搭建vue项目的时候配置了一个全局的配置文件,我们自己写vue文件是基于这个电脑的整个环境下来搭建的,那自然用的就是这个配置文件,你可以去你的电脑:【C:\Users\你的用户名\.npmrc】这个路径来找到这个配置文件

或者用【Win + R】cmd打开终端,再输入【npm get registry】也会发现其实我们的配置没有问题

那么我们需要到自己的项目里打开终端来检查,当我们回到项目里,要在你这个项目的【根目录】打开终端,输入【npm get registry】,就可能会发现你刚刚的配置并没有成功

3)项目里还有一个【.npmrc】配置文件,也要改

经过检查之后才发现,原来这个项目里还有一个【.npmrc】文件,这个文件覆盖了全局的npm的那个配置文件,所以我们刚刚改的只是我们电脑里全局的那个配置文件,而不是这个项目里的局部配置文件,我们只需要把它也改了就行

4)如果是用nvm管理node.js的,还要检查nvm那里的setting文件

前面的情况是单独直接安装一个node.js的用户的情况,那么还有的人是用nvm管理node的,那么要到nvm的安装路径下,找到setting文件,检查这里的镜像路径

5)最后还要删除【package-lock.json】文件

这个文件会规定死每个依赖包的安装来源的路径,即便你所有的配置文件都配置了最正确的镜像源,这个文件还会误导npm去到各个错误的路径区下载依赖包

直接删掉,然后执行一下【npm cache clean --force】清除一下npm前面下载留下的一些错误缓存

然后再执行【npm install】,就大功告成了,也会生成新的【package-lock.json】文件

相关推荐
春天姐姐15 分钟前
vue知识点总结 依赖注入 动态组件 异步加载
前端·javascript·vue.js
互联网搬砖老肖1 小时前
Web 架构之数据读写分离
前端·架构·web
Pop–2 小时前
Vue3 el-tree:全选时只返回父节点,半选只返回勾选中的节点(省-市区-县-镇-乡-村-街道)
开发语言·javascript·vue.js
滿2 小时前
Vue3 + Element Plus 动态表单实现
javascript·vue.js·elementui
钢铁男儿2 小时前
C# 方法(值参数和引用参数)
java·前端·c#
阿金要当大魔王~~2 小时前
面试问题(连载。。。。)
前端·javascript·vue.js
yuanyxh2 小时前
commonmark.js 源码阅读(一) - Block Parser
开发语言·前端·javascript
进取星辰2 小时前
22、城堡防御工事——React 19 错误边界与监控
开发语言·前端·javascript
MaCa .BaKa2 小时前
37-智慧医疗服务平台(在线接诊/问诊)
java·vue.js·spring boot·tomcat·vue·maven
ドロロ8063 小时前
element-plus点击重置表单,却没有进行重置操作
javascript·vue.js·elementui