nrm自动设置npm镜像源

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 下载包,速度会快很多 。

相关推荐
小林ixn15 分钟前
你以为你懂 + 号?看完这篇 Bun + TS 实战,才发现以前全写错了
前端·javascript·typescript
namexingyun37 分钟前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
Zyed41 分钟前
[STM32]Day15读写FLASH+读取ID
前端·stm32·性能优化
jvxiao2 小时前
你真的懂作用域吗?从编译原理角度深度 JS 的作用域
前端·javascript
Penfy_Z2 小时前
【Python LLM 调用踩坑】Connection error 终极解决方案!npm 代理导致阿里云通义千问接口连接失败
开发语言·python·npm
Darling噜啦啦2 小时前
二叉树与递归算法实战:从树结构到 LeetCode 爬楼梯,一文吃透前端数据结构与递归思维
前端·javascript·数据结构
星栈2 小时前
Rust + Makepad 应用怎么打包发布:Windows、macOS、Linux 全平台交付
前端·rust
Aolith2 小时前
React 路由守卫:我用一个组件替代了 Vue 的 beforeEach
前端·react.js
Daybreak2 小时前
从 PDD、DDD、SDD 到 TDD:我是如何用一套 Agent 工程方法论推进 My-Notion 的
前端
HjhIron2 小时前
从零实现一个待办事项应用:前端必学的Ajax与Node.js实战
前端·后端