【nrm】npm 注册表管理器

nrm是什么

nrm(NPM Registry Manager)是一个用于管理 Node.js 包管理器(如 npmYarn)的注册表工具。它可以帮助用户快速切换不同的 npm 源,以便于提高包安装的速度和效率,特别是在中国大陆地区,使用默认的 npm 源往往速度较慢。

nrm的作用

在使用 npm 的过程中,可能插件安装速度比较慢,我们可能会使用淘宝源对插件进行下载安装。或者在公司内部,有一些私有的插件,需要使用公司的源才可以下载。这种情况,我们就需要设置不同的源来进行下载。每次手动设置相对比较麻烦。而 nrm 可以很好的解决这个问题。

nrm主要功能

  1. 切换 npm 源:可以快速在多个 npm 源之间切换。
  2. 添加和删除源:可以自定义添加新的源或删除不需要的源。
  3. 查看当前源:可以方便地查看当前正在使用的 npm 源。
  4. 列出可用源:可以查看所有可用的 npm 源列表。

安装 nrm

bash 复制代码
# 全局安装 nrm
$ npm install nrm -g

安装完成后,输入命令 nrm ls,可以看到默认已经有了 6 个源(带 * 号的为当前使用的源)

bash 复制代码
* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/

输入 nrm use taobao,即切换 registry 到 taobao,即可使用淘宝的源进行插件的安装下载了。

nrm常用命令

命令 描述
npm install -g nrm 全局安装nrm
nrm current 查看当前使用的 npm 源
nrm ls 列出所有可用的 npm 源
nrm use <name> 切换到其他 npm 源
nrm add <name> <url> 切添加自定义源
nrm del <name> 删除已添加的源
nrm set <name> <new-url> 更新已添加的源
nrm test 测试所有源的速度
nrm test <name> 测试指定源的速度

nrm示例解析

  • npm install -g nrm:全局安装nrm, 注意:如果使用 nvm 那么会安装在当前node版本号文件目录中

  • nrm current:查看当前使用的 npm 源

  • nrm ls:查看所有配置好的源以及对应名称

  • nrm use <name>:切换源,即可使用 name 对应名称的源

  • nrm add <name> <url>:添加源,name 是名称,可以自行命名,后面是源的 url 地址。例如,添加一个自定义源nrm add myregistry https://my.custom.registry/

  • nrm del <name>:删除源,根据名称 name 可以删除对应的源

  • nrm set <name> <new-url>:如果需要更新某个源的 URL,可以使用 set 来更新

  • nrm test <name> :测试源的速度,不加对应的 name 名称,测试所有源的速度,添加对应的名称,比如 name,就是测试 name 对应的源的速度

  • 更多命令在命令行输入 nrm 即可查看

nrm指定了npm源后,只允许安装源内的包吗?

不是的。

nrm允许你方便地切换和管理 npm 源,但它并不会限制你只能安装指定源内的包。换句话说,通过 nrm 指定了源后,你的 npm 安装命令会从该源中拉取包信息,但如果在该源中找不到指定的包,npm 仍然可能会尝试从默认源(如 npm 官方源)中查找包。

为了确保只从指定的源中安装包,你需要将 npm 配置锁定到该源。可以使用以下步骤来实现:

  1. 通过 nrm 切换源

    sh 复制代码
    nrm use <your-registry-name>
  2. 验证当前源

    sh 复制代码
    npm config get registry
  3. 设置严格的 registry 配置

    可以通过编辑 .npmrc 文件来强制 npm 只从指定的源中安装包。例如,在你的项目根目录下创建或编辑 .npmrc 文件,添加以下内容:

    sh 复制代码
    registry=<your-registry-url>
    strict-ssl=true
    always-auth=true
  4. 锁定范围 (可选):

    如果你只希望对某个范围内的包使用特定的 registry,可以在 .npmrc 中进行如下配置:

    sh 复制代码
    @your-scope:registry=<your-registry-url>

通过上述步骤,你可以确保 npm 只从你指定的源中安装包。请注意,strict-sslalways-auth 选项是为了增加安全性,但并不是必需的。

相关推荐
you来有去2 小时前
npm install报错npm ERR! Found: vite@4.5.0
前端·npm·node.js
shangtaobocdns4 小时前
node.js + vue
前端·vue.js·node.js
等什么君!4 小时前
初识node.js
java·node.js
假意诗人4 小时前
【NodeJS】npm、yarn、pnpm当前项目设置国内镜像源
前端·npm·node.js
Jackson__7 小时前
浅谈 nodejs 的事件循环机制
前端·面试·node.js
@山海@7 小时前
Windows环境下Node.js多版本切换的实用指南
node.js
隐藏用户y13 小时前
全局安装cnpm并设置其使用淘宝镜像的仓库地址(地址最新版)
npm·cnpm
yangshuo128115 小时前
node.js npm 安装和安装create-next-app -windowsserver12
前端·npm·node.js
程序猿进阶15 小时前
New major version of npm available! 8.3.1 -> 10.8.3 报错
java·开发语言·前端·设计模式·npm·node.js·并发编程