NPM Registry Manager (nrm) 使用指南
使用 nrm 工具轻松管理 npm 镜像源。
2024-11-05
npmnrm
NPM Registry Manager (nrm) 使用指南
背景
众所周知的原因 npm 在国内访问不但很慢还很不稳定。虽然可以通过 npm config set registry <镜像地址>
来设置镜像源,但是有时候镜像不稳定或者想更换镜像也不是很方便。nrm 工具可以方便的管理镜像的切换。
简介
nrm 是一个 NPM 镜像源管理工具,可以快速切换不同的 npm registry。默认支持 npm、yarn、cnpm、taobao 等常用源。
安装
npm install -g nrm
基础命令
- 查看所有源:
nrm ls
- 查看当前源:
nrm current
- 切换源:
nrm use <registry>
- 测试响应时间:
nrm test [registry]
实际测速示例
$ 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/
huawei ------- https://repo.huaweicloud.com/repository/npm/
$ nrm test
npm ---------- 3189 ms
yarn --------- 3231 ms
tencent ------ 893 ms
cnpm --------- 843 ms
taobao ------- 548 ms
npmMirror ---- timeout (Fetch timeout over 5000 ms)
huawei ------- 2567 ms
从测试结果可以看出,国内源(如 taobao、tencent、cnpm)的响应速度明显快于国外源。
源管理
- 添加自定义源:
nrm add <registry> <url>
- 删除自定义源:
nrm del <registry>
- 重命名源:
nrm rename <oldName> <newName>
私有源配置
- 设置发布地址:
nrm set-hosted-repo <registry> <url>
- 设置作用域:
nrm set-scope <scopeName> <registry>
- 移除作用域:
nrm del-scope <scopeName>
身份验证
nrm login <registry> [value]
-u, --username <username> # 用户名
-p, --password <password> # 密码
-e, --email <email> # 邮箱
-a, --always-auth # 总是认证
发布包
nrm publish [<tarball>|<folder>]
-t, --tag [tag] # 添加标签
-a, --access <public|restricted> # 设置访问权限
Yarn配置
在项目目录或用户目录的 .yarnrc
文件中添加:
registry "<http://your.registry>"
注意事项
- 使用预设源时,publish 命令会代理到 npm 官方源
- 使用自定义源发布包需要先配置 set-hosted-repo
- 原淘宝 npm 域名已停止解析,请使用 npmmirror.com