NPM Registry Manager (nrm) 使用指南

NPM Registry Manager 使用指南

使用 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