【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 选项是为了增加安全性,但并不是必需的。

相关推荐
laoli_coding14 小时前
如何配置HTTPS站点访问的免费SSL域名证书
网络协议·https·node.js·ssl
To_OC14 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
大家的林语冰1 天前
👍 Rust 为 Node 插上翅膀,反超 Bun 和 pnpm,一体化工具我也有!
前端·javascript·node.js
Kel1 天前
Node.js 本质:从全脉络视角理解运行时原理
javascript·设计模式·node.js
ShiXZ2131 天前
指令集-NPM 常用指令速查手册
前端·npm·node.js
是烨笙啊1 天前
从 npm 与 Bun 的选择看 AI 时代的“最佳实践”焦虑
前端·人工智能·npm
小杍随笔1 天前
【 .npmrc 终极配置指南:统一管理 npm/pnpm 缓存与全局目录,告别磁盘混乱】
前端·缓存·npm
孟陬2 天前
高质量全方位的 AI 工具 sse-stuntman — Mock SSE 接口
前端·node.js·openai
掰头战士2 天前
你本地的LLM有时会胡乱使用tools?不妨用MCP规范LLM工具调用!
node.js·llm·全栈
触底反弹2 天前
🧠 LangChain Agent 入门:为什么直接调大模型 API 远远不够?
人工智能·node.js·llm