npm install 半天没动静,最后超时报错,第一反应该是网络问题。这时候改 .npmrc 换个镜像源,几分钟就能解决。它是 npm 的配置文件,一行一条 key=value,优先级从高到低:项目根目录、用户主目录、全局配置,项目里的会覆盖外面的。
最常用的:换镜像源
在项目根目录建一个 .npmrc,内容一行:
registry=https://registry.npmmirror.com
写在项目里只对这个项目生效,写在用户主目录则对本人所有项目生效。用命令改也等价:npm config set registry https://registry.npmmirror.com,改完用 npm config get registry 确认一下实际生效的地址。
公司私有源的 scope 写法
公司内部组件发在私有仓库,公共包又想走镜像,就给 scope 单独配一条:
registry=https://registry.npmmirror.com @mycompany:registry=https://npm.mycompany.com/
带 @mycompany 前缀的包走私有源,其余照旧。私有仓库需要认证的话,token 也写在这个文件里,格式一般是 //host/:_authToken=xxx。特别注意:项目根目录的 .npmrc 通常会提交进 git,token 千万别写在项目级文件里,放用户主目录那份才安全。
其他实用配置
- cache=D:/npm-cache:指定缓存目录,C 盘吃紧时挪走
- strict-ssl=false:内网自签证书场景临时用,别长期开着
- proxy 和 https-proxy:走公司代理时配置
排查安装问题时,先 npm config list 看实际生效的配置,再看项目里有没有同事提交的配置文件把源覆盖了。多数看起来玄学的安装失败,都能在这一层找到原因。