npm 和 nrm 的区别
简单来说:npm 是"买菜的",nrm 是"帮你选去哪个菜市场买菜的"。
- npm 是 Node.js 的包管理工具,用来安装、卸载、管理项目依赖包。
- nrm 是 npm 的源管理工具,用来切换 npm 下载包时的镜像源地址。
一、npm:包管理器
npm(Node Package Manager)是 Node.js 默认的包管理工具,安装 Node.js 后会自动附带 。
它的主要功能
- 安装依赖包 :
npm install express - 卸载依赖包 :
npm uninstall express - 更新依赖包 :
npm update express - 初始化项目 :
npm init生成 package.json 文件 - 运行脚本 :
npm run start - 发布自己的包 :
npm publish
核心定位
npm 负责管理项目的依赖包------你需要什么库,用它来下载 。
二、nrm:npm 源管理器
nrm(npm registry manager)是一个 npm 的镜像源管理工具,让你能快速在不同的 npm 源之间切换 。
为什么需要 nrm?
npm 默认从官方源 https://registry.npmjs.org/ 下载包,这个服务器在国外,国内访问速度很慢。国内有淘宝镜像等加速源,但手动切换源地址需要敲命令、记地址,很麻烦 。
nrm 把这些常用源地址都帮你存好了,一条命令就能切换。
常用命令
| 命令 | 作用 |
|---|---|
nrm ls |
列出所有可用镜像源,* 标记当前使用的源 |
nrm current |
查看当前使用的源名称 |
nrm use taobao |
切换到淘宝源 |
nrm test |
测试各个源的响应速度 |
nrm add <名称> <url> |
添加自定义源(比如公司私有源) |
nrm del <名称> |
删除某个源 |
执行示例
powershell
$ nrm ls
* npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
$ nrm use taobao
SUCCESS The registry has been changed to 'taobao'.
核心定位
nrm 不负责下载包,它只负责修改 npm 的源地址配置。改完之后,实际下载包的工作还是 npm 在做 。
三、总结对比
| 维度 | npm | nrm |
|---|---|---|
| 全称 | Node Package Manager | npm registry manager |
| 定位 | 包管理工具 | 源管理工具 |
| 核心功能 | 安装、卸载、管理依赖包 | 切换 npm 镜像源地址 |
| 谁用它 | 所有 Node.js 开发者 | 网络访问官方源慢的开发者 |
| 安装方式 | 随 Node.js 自动安装 | npm install -g nrm |
| 是否必须 | ✅ 必须 | ❌ 可选,手动配置源也可以 |
一句话总结
- npm = 帮你"买菜"(安装依赖)
- nrm = 帮你看"去哪个菜市场买菜更快"(切换下载源)
两者是配合使用的关系------先用 nrm use taobao 切到国内源,再用 npm install 下载包,速度会快很多 。