笔者在拉取其他人的vue项目的时候,发现在启动的时候总是说某个某个模块缺少,尝试使用npm安装该模块却发现找不到
于是乎我可能就在怀疑有可能是node npm两个的版本的问题,导致某些包的位置或者名称。
尝试把模块包删除后重新安装,最后结果还是不行。
于是也和一些前端朋友交流了一下,成功解决,一下总结几点,帮助后来者初学者排查自己的错误,如有大佬发现我说错了,感谢更正!
共勉!
1、引入国内的npm下载镜像
当我们需要从网络上的资源库下载资源的时候,很多时候我们会发现速度特别慢或者会下载失败。这是因为很多的这些资源库存放地址都是在国外,我们访问国外的网络自然会比较慢,国内大部分都有这种情况,所以很多有自己服务器资源的人或者公司团队,会无偿的提供自己的服务器资源来保存这些存放在国外服务器的资源,并且定时更新。
像国内几个比较有名的清华开源镜像,阿里云镜像等,都是做这类服务的镜像站。
我们使用 npm install
下载资源的时候,也是走国外的资源仓库,所以下载模块资源失败的时候我们首先应该解决的是资源地址的问题。因为很有可能是因为网络问题导致下载失败。
对于npm的国内镜像,比较常用的就是淘宝的镜像,安装方法可以直接复制以下代码,在cmd命令行文件中执行
npm install -g cnpm -registry=https://registry.npm.taobao.org
随后把npm install
改成 cnom install
即可
如果此方法安装失败可以自行百度,关键词cnpm安装。
2、删除node_moudle,package.json,package-lock.json
我们通过npm install下载的vue的插件包都放在node_moudle里面,旧的版本中是没有package-lock.json这个文件的。
当我们导入别人的vue项目,执行cnpm install
的时候,首先会检查package.json里的插件和版本,看一下node_moudle中是否有这个插件,没有就下载,如果有就检查版本是否为最新的,不是就自动下载。
新版本会加入一个package-lock.json文件,引入这个文件后,会在package.json保存项目需要的依赖插件,在package-lock.json保存其版本。因此新版本执行cnpm install
的时候就不会自动更新插件的版本,会和package-lock.json记录的版本保持一致。
当我们导入项目并安装插件失败的时候,可以尝试把这三个文件都删除了,重新执行一遍cnpm insall
尝试能否安装成功。