Repository: HelloGitHub
Issue: [开源自推]: 超轻量的 npm 镜像管理器
Labels: JavaScript 项目

## 推荐项目

<!-- 这里是 HelloGitHub 月刊推荐项目的入口，欢迎自荐和推荐开源项目，唯一要求：请按照下面的提示介绍项目。-->


<!-- 点击上方 “Preview” 立刻查看提交的内容 -->


<!--仅收录 GitHub 上的开源项目，请填写 GitHub 的项目地址-->
- 项目地址：https://github.com/CreateWheel/mini-nrm

<!--请从中选择（C、C#、C++、CSS、Go、Java、JS、Kotlin、Objective-C、PHP、Python、Ruby、Rust、Swift、其它、书籍、机器学习）-->
- 类别：JavaScript

<!--请用 20 个左右的字描述它是做什么的，类似文章标题让人一目了然 -->
- 项目标题：超轻量的 npm 镜像管理器

<!--这是个什么项目、能用来干什么、有什么特点或解决了什么痛点，适用于什么场景、能够让初学者学到什么。长度 32-256 字符-->
- 项目描述：能够方便的在各个镜像之间来回却换，特别是国内每次执行 `npm install` 时安装特别慢，如今你可以使用 `mini-nrm` 快速切换镜像安装项目依赖，比如切换至 `tencent` 等国内镜像

<!--令人眼前一亮的点是什么？类比同类型项目有什么特点！-->
- 亮点：
- - “零”依赖
- - 苗条
- - 完整的 TypeScript 类型声明
- - 可自定义添加多个镜像
- - 可对镜像进行测试

- 示例代码：

安装
```bash
npm install -g mini-nrm
```
因为它很小，你甚至都不需要安装，可使用 `npx` 命令直接使用它

```bash
npx mini-nrm --help
```

使用 `mnrm --help` 查看帮助列表
```bash
  Usage
    $ mnrm [options]
  Options
    ls, list                          List all the registries
    use <name>                        Switching the registry
    add <name> <registry> [home]      Add a custom registry
    test [-i, --info]                 Test the response time of all registries
    del, delete, rm, remove <name>    Remove a custom registry
    h, -h, help, --help               Show this help
  Examples

    $ mnrm add npm https://registry.npmjs.org/
    # or
    $ mnrm add npm https://registry.npmjs.org/ https://www.npmjs.org

    $ mnrm use npm

    $ mnrm list

      * npm --------- https://registry.npmjs.org/
        yarn -------- https://registry.yarnpkg.com/
        taobao ------ https://registry.npmmirror.com/
        tencent ----- https://mirrors.cloud.tencent.com/npm/
        npmMirror --- https://skimdb.npmjs.com/registry/
        github ------ https://npm.pkg.github.com/

    $ mnrm test

      * npm --------- 153 ms
        yarn -------- 175 ms
        taobao ------ 519 ms
        tencent ----- 121 ms
        npmMirror --- 481 ms
        github ------ 169 ms

    $ mnrm test -i

      ┌─────────┬─────────────┬───────┬───────────┬─────────┬─────────┬────────────────┬──────────┬──────────────────────────────────────────┐
      │ (index) │    name     │ code  │   total   │   DNS   │   TCP   │ start_transfer │ redirect │                effective                 │
      ├─────────┼─────────────┼───────┼───────────┼─────────┼─────────┼────────────────┼──────────┼──────────────────────────────────────────┤
      │    0    │    'npm'    │ '000' │ 'Timeout' │ '27ms'  │  '0ms'  │     '0ms'      │  '0ms'   │      'https://registry.npmjs.org/'       │
      │    1    │   'yarn'    │ '000' │ 'Timeout' │ '32ms'  │  '0ms'  │     '0ms'      │  '0ms'   │     'https://registry.yarnpkg.com/'      │
      │    2    │  'taobao'   │ '200' │  '654ms'  │ '41ms'  │ '214ms' │    '653ms'     │  '0ms'   │    'https://registry.npmmirror.com/'     │
      │    3    │  'tencent'  │ '200' │ '1159ms'  │ '251ms' │ '452ms' │    '1159ms'    │  '0ms'   │ 'https://mirrors.cloud.tencent.com/npm/' │
      │    4    │ 'npmMirror' │ '000' │ 'Timeout' │ '22ms'  │  '0ms'  │     '0ms'      │  '0ms'   │   'https://skimdb.npmjs.com/registry/'   │
      │    5    │  'github'   │ '200' │ '2302ms'  │ '287ms' │ '775ms' │    '2301ms'    │ '1179ms' │  'https://github.com/features/packages'  │
      └─────────┴─────────────┴───────┴───────────┴─────────┴─────────┴────────────────┴──────────┴──────────────────────────────────────────┘
```

- 截图：
![mini-nrm](https://user-images.githubusercontent.com/48512251/198200813-9e41ac4e-e026-4054-94d1-af6ba4a28b2f.gif)


- 后续更新计划：近期测试完毕后即可发布 v1.0.0 版本