看到npm下载包出错, 通常我们会手动删除node-modules这个文件夹来解决.
但是往往现实很骨感, 然后我们会找网上各种方法来解决, 比如这篇文章
但是当所有方法都尝试了一遍, 仍然还是出错, 这到底是什么原因呢?
可以使用npm config ls 查看一下我们电脑上是否会有一份.npmrc文件
.npmrc文件
.npmrc,可以理解成npm running cnfiguration, 即npm运行时配置文件。简单点说, .npmrc 可以设置 package.json 中依赖包的安装来源,既从哪里下载依赖包。
我出现的问题就是在用户文件夹内的.npmrc文件影响的
所以依赖一直下载不了
我的.npmrc内容中存在http://registry.npm.taobao.org
这个是旧的淘宝源域名了, 现在更新了新域名, 所以一些依赖就会出现问题
域名切换规则:
- http://npm.taobao.org => http://npmmirror.com
- http://registry.npm.taobao.org => http://registry.npmmirror.com
所以删除这些npm运行时配置文件中的内容, 就完美解决了
.npmrc 配置文件的优先级
电脑中有多个 .npmrc 文件,在我们安装包的时候,npm按照如下顺序读取这些配置文件
项目配置文件: /project/.npmrc
用户配置文件:~/.npmrc
全局配置文件:$PREFIX/etc/npmrc
npm 内置配置文件 /path/to/npm/npmrc
我受影响的就是用户配置文件.npmrc
实在不知道怎么配置用户文件, 可以删除用户配置文件, 就不会受干扰的