困惑
用过 npm 来安装第三方依赖包,但由于 npm 默认的下载仓储地址是 https://registry.npmjs.org/
,属于外国的网站,所以我们下载的时候可能会非常的慢。所以淘宝也做了一个 npm 的镜像网站。
切换成淘宝镜像源可以通过以下命令完成切换:
$ npm config set registry https://registry.npmmirror.com/
# 或者直接在 npm 配置文件修改
$ npm config edit
淘宝之前改过镜像源地址,导致不知情的同学无法拉取镜像。如何不记住这个地址,也可以切换呢
解决办法:
nrm(npm registry manager)是一个NPM源管理器,它允许你快速地在如下NPM源间切换
步骤
1、安装nrm
使用npm全局安装nrm,很不幸,你还是要先安装这个nrm,安装的前提是还要用原来的国外镜像,发现无法加载。可以看上一篇 npm、cnpm、pnpm、yarn包管理工具别傻傻分不清楚了-CSDN博客,先切换。
npm install -g nrm
2、查看可用的源
nrm ls
C:\Users\xxx>nrm ls
* npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
3、切换源
C:\Users\xxx>nrm use taobao
SUCCESS The registry has been changed to 'taobao'.
4、还可以增加你自己部署的私有源
# (1)增加自定义源(私有源)
nrm add 源名 源地址
nrm add company http://registry.mycommirr.com
# (2)删除自定义源
nrm del 源名
# (3)测试源的响应时间
nrm test 源名
5、查看npm的registry源地址
C:\Users\xxx>npm config get registry
https://registry.npmmirror.com/
6、如何持久化使用
特别注意:nrm切换的源在关闭终端后会还原。
如果要永久使用某个源,可以在~/.npmrc文件中添加:
sass_binary_site=https://npm.taobao.org/mirrors/node-sass
registry=https://registry.npmmirror.com/
electron_mirror=https://npmmirror.com/mirrors/electron/
home=https://npmmirror.com
这样每次使用npm安装都会默认通过这个源安装。
7、私有源权限控制
如果你是私有源,通常都需要权限访问,这里通过token机制实现
nrm从v1.0开始增加了通过token进行源访问控制的功能,可以通过--auth选项设置一个访问token:
nrm add mycompany http://registry.mycompany .com --auth token
8、yarn命令如何使用
yarn也有多个源可以切换。我们可以统一配置yarn的源:
yarn config set registry http://registry.mycompany.com
请结合上一篇文章一起看