开发工具

全栈进阶之路
帅旋
关注
充电
IT宅站长,技术博主,架构师,全网id:arthinking。

npm install太慢?试试nrm!

发布于 2025-04-05 | 更新于 2025-04-05

npm源的问题

在使用 Node.js 开发时,npm(Node Package Manager)是我们常用的包管理工具。然而,由于网络原因,使用默认的 npm 源进行包安装时,速度可能会很慢,甚至出现超时等问题。为了解决这个问题,国内的开发者通常会选择使用淘宝的 npm 镜像源。手动设置 npm 源虽然有效,但每次切换源时需要记住不同源的地址,操作起来不够方便。

手动切换npm源

如果你手动设置npm源,一般是如下操作的:

  1. 查看当前 npm 镜像源:

    打开终端,输入以下命令:

    1
    npm config get registry

默认情况下,输出为 https://registry.npmjs.org/

  1. 设置国内镜像源:

    您可以选择以下国内镜像源之一:

    • 淘宝镜像源:

      1
      npm config set registry https://registry.npmmirror.com/
    • 腾讯云镜像源:

      1
      npm config set registry http://mirrors.cloud.tencent.com/npm/
    • 华为云镜像源:

      1
      npm config set registry https://mirrors.huaweicloud.com/repository/npm/
  2. 验证设置是否成功:

    再次输入以下命令,检查当前的 npm 镜像源:

    1
    npm config get registry

如果输出为设置的镜像源地址(如 https://registry.npmmirror.com/),则表示设置成功。

发现没有?手动切换镜像源虽好,但…

  1. 需要死记硬背镜像地址
  2. 每次切换都要敲长命令
  3. 测速对比全靠玄学

nrm神器登场

为了更加方便的切换npm的镜像源,nrm(npm registry manager)应运而生。它是一个 npm 源管理工具,可以帮助我们在多个 npm 源之间快速切换,极大地提高了包管理的效率。

什么是 nrm?

nrm 是一个用于管理 npm 源的工具,允许开发者在不同的 npm 源之间快速切换。使用 nrm,您可以轻松地切换到速度更快的源,例如淘宝镜像源,或者切换到公司内部的私有源。

nrm可以理解为是专治npm慢的瑞士军刀,具有以下用起来很爽的功能:

  • 📦 支持多种主流镜像源一键切换
  • ⚡ 内置测速功能找出最快源
  • 🔄 秒切公司私有源/测试源
  • 📊 可视化源状态管理

如何安装 nrm?

在安装 nrm 之前,建议先将 npm 的源设置为淘宝镜像源,以确保安装过程顺利。

  1. 设置 npm 源为淘宝镜像:

    打开终端,执行以下命令,将 npm 的源设置为淘宝镜像:

    1
    npm config set registry https://registry.npmmirror.com/
  2. 全局安装 :

    执行以下命令,使用淘宝镜像源安装 nrm

    1
    npm install -g nrm

    由于之前已将 npm 源设置为淘宝镜像,安装速度会明显提升。

如何使用 nrm?

安装完成后,您可以使用以下命令来管理 npm 源:

  1. 查看当前使用的源:

    1
    nrm current
  2. 查看所有可用的源:

    1
    nrm ls

    该命令会列出所有配置的源,其中带有 * 标记的是当前使用的源。例如:

    1
    2
    3
    4
    * npm ---- https://registry.npmjs.org/
    taobao - https://registry.npmmirror.com/
    cnpm --- http://r.cnpmjs.org/
    ...
  3. 切换源:

    要切换到其他源,例如切换到淘宝源,可以执行:

    1
    nrm use taobao

    切换后,执行 nrm ls,您会看到带有 * 标记的源已变为淘宝源。

  4. 添加自定义源:

    如果您需要添加公司内部的私有源,可以执行:

    1
    nrm add company http://npm.company.com/
  5. 删除源:

    要删除某个源,例如删除名为 company 的源,可以执行:

    1
    nrm del company
  6. 测试源的响应速度:

    要测试某个源的响应速度,例如测试淘宝源,可以执行:

    1
    nrm test taobao

    该命令会显示各个源的响应时间,帮助您选择最快的源。

比如我这里测试下各个源的响应速度:

1
2
3
4
5
6
7
8
➜  ~ nrm test
npm ---------- 1086 ms
yarn --------- 1277 ms
tencent ------ 457 ms
cnpm --------- 1101 ms
* taobao ------- 49 ms
npmMirror ---- 1848 ms
huawei ------- 45 ms

很明显,taobao的速度是最快的,立马执行nrm use taobao切换过去。

本文作者: 帅旋

本文链接: https://www.itzhai.com/columns/faqs/devtools/nrm.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。

请帅旋喝一杯咖啡

咖啡=电量,给帅旋充杯咖啡,他会满电写代码!

IT宅

关注公众号及时获取网站内容更新。