跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • nnrm – 一个极简的 npm/yarn registry 切换管理器
未分類
1 3 月 2021

nnrm – 一个极简的 npm/yarn registry 切换管理器

nnrm – 一个极简的 npm/yarn registry 切换管理器

資深大佬 : YunYouJun 2

nnrm 是什么

一个简单的 npm/yarn registry (镜像源)切换工具

Github: https://github.com/YunYouJun/nnrm

Why new nrm – nnrm?

npm 用户常常因为国内环境需要在 npm 的官方镜像与国内加速镜像间切换。譬如,(没有代理的情况下)本地安装一些依赖包可以使用淘宝镜像,而发布包的时候则要切换至 npm 。

nrm 使得切换更加方便,我们可以简单地使用 nrm use taobao 的方式切换镜像。但是在切换镜像前,安装 nrm 本身也是一件很慢的事情,nrm 依赖了已 deprecated 的且包体较大的 request,以及 npm 包,以及一些其他依赖。

而我自身至今使用过的实际只有 nrm ls 与 nrm use 命令而已。(偶尔可能尝试一下 nrm test 进行测速)。

Features

nnrm 相比 nrm 的改进之处,极小的依赖。以及支持 yarn 。( yarn 与 npm 的 registry 是互相独立的。)

  • 使用 node-fetch(289B) 替代 request(184.8KB) 进行测速 node-fetch vs axios vs request | npmtrends
  • 使用 execa(8.4KB) 替代 npm(455.4KB) 通过终端而非 node API 实现切换 execa vs npm | npmtrends
  • 使用 cac ( 3.6KB ) 替代 commander ( 6.8KB )实现简单的终端 cac vs commander | npmtrends
  • 异步地显示源测速结果

安装

yarn global add nnrm # npm install -g nnrm 

使用

切换源

nnrm 同时绑定了四个命令 nnrm nrm nyrm yrm。

npm 可以使用 nnrm 或 nrm 切换。

yarn 可以使用 nyrm 或 yrm 切换。

nnrm use taobao # nrm use taobao 

nnrm - 一个极简的 npm/yarn registry 切换管理器

# 测速 nnrm test 

nnrm - 一个极简的 npm/yarn registry 切换管理器

# 显示所有源 nnrm ls 

大佬有話說 (16)

  • 資深大佬 : imzcg2

    有没有可能添加自定义源

  • 資深大佬 : hxsf

    可以定义 publishConfig 啊

  • 資深大佬 : yazoox

    这个可以有!有空试试

  • 資深大佬 : xiangchen2011

    不错,感觉比 nrm 好用

  • 資深大佬 : Cbdy

    蛮怪的,设置几个 alias 不就可以了吗?

  • 資深大佬 : chouchoui

    @imzcg2 安装目录下面有个 registries.json,试了一下编辑有效

  • 資深大佬 : MyFaith

    nrm 和 yrm 的结合体

  • 主 資深大佬 : YunYouJun

    @Cbdy 本身目的的话便是为了省去输入较长的命令或者配置 alias 的麻烦,场景比如,给实验室的某台机器 /学弟学妹切个源,安装一个几 K 的包,很明显比专门再去为每台机器配置 alias 要方便的多。以及保存了几个常用的 registry 。(以及测速总不能挨个 ping 一遍吧)

  • 資深大佬 : ezreal

    和 cgr 有什么差别 https://www.npmjs.com/package/cgr

  • 主 資深大佬 : YunYouJun

    @hxsf hhh 我觉得这和,我感觉身子冷,出去跑跑还是打开空调的选择差不多。

  • 主 資深大佬 : YunYouJun

    @ezreal 区别就是我并不知道有 cgr 这个东西。其次就是我想要替代掉 deprecated 的 request 。具体区别也写在了 Features 里。(反倒是 cgr 与 nrm 有和区别?)

  • 資深大佬 : hxsf

    @YunYouJun #10

    > npm 用户常常因为国内环境需要在 npm 的官方镜像与国内加速镜像间切换。譬如,(没有代理的情况下)本地安装一些依赖包可以使用淘宝镜像,而发布包的时候则要切换至 npm 。

    对此我提出可以配置 publishConfig.regsitry 而已,一劳永逸,不需要因为发布包而切换。直接用一个镜像站就行了。

    而国内几家镜像站差距不大,平时也不会来回切换。

    而且在有 lock 的情况下,切换源并不会有影响。

  • 資深大佬 : abersheeran

    不是很懂哈。直接给 npm 配置代理不就好了吗?

  • 主 資深大佬 : YunYouJun

    @hxsf
    @abersheeran

    举的一个例子,可能不是很恰当。换一个例子。
    我需要给实验室(国内)的机器部署 node 的相关项目,首先我自行给其配代理不合适,其次部署项目时可能偶尔有一些自己新发的包,而国内的镜像更新必然有延迟,这时我可能需要临时切换到 npm 来获取最新的版本,而日常则继续默认切换回国内镜像。

  • 主 資深大佬 : YunYouJun

    @hxsf (实质我自己本地一直用的 npm 官方镜像,有魔法所以没有这个烦恼。但是经常要帮师弟师妹同学们调试,或者管一些其他服务器,所有就写了这个脚本以备方便一些。)所以应该属于面向不同需求。

  • 主 資深大佬 : YunYouJun

    @imzcg2
    @chouchoui

    整好了,加了 `nnrm add example https://example.com` 和 `nnrm remove example` 自定义源的方式。
    自定义源时,会默认新建文件 `~/.nnrm/registries.json` 来记录,因此不影响升级。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具