【NPM 笔记(三)】镜像源与版本管理:nrm 与 nvm 实用指南

包管理工具

方案

cnpm(淘汰)

cnpm 是淘宝团队开发的 npm 镜像工具,用于解决国内访问 npm 官方源速度慢的问题,它完全兼容 npm 命令,仅将下载源切换为淘宝镜像。

旧版淘宝镜像 https://registry.npm.taobao.org/ 已于 2022年6月30日 停止服务,当前官方替代镜像为 https://registry.npmmirror.com(由 npmmirror 团队维护)

bash 复制代码
# 更换源至淘宝镜像
npm config set registry https://registry.npmmirror.com
​
# 直接使用 cnpm 替换 npm
npm install -g cnpm --registry=https://registry.npmmirror.com

yarn(了解)

yarn 是 Facebook 推出的 JavaScript 包管理工具,最初为解决早期 npm依赖安装速度、版本一致性、安全性上的不足而设计。

bash 复制代码
# 通过 npm 全局安装 yarn
npm i yarn -g

不过,随着 npm 不断升级(尤其是 5.0+ 版本后),逐渐解决了早期存在的不足,yarn的地位就比较尴尬了。

pnpm(权威)

pnpm(Performant npm)是由 npm 早期贡献者开发的新一代工具,核心目标就是解决上述问题。它在保留 npm/yarn 核心功能的同时,通过创新的硬链接(Hard Link)机制实现了突破:

  • 所有依赖包在磁盘中仅存储一次,不同项目通过硬链接共享,大幅节省空间。
  • 默认采用非扁平依赖结构,严格限制只能访问 package.json 中显式声明的依赖,从根源避免幽灵依赖。
  • 结合并行安装和内容寻址存储,安装速度也显著优于传统工具。
bash 复制代码
# 通过 npm 全局安装 pnpm
npm i pnpm -g

无论新老项目,均建议采用 pnpm 作为包管理工具

补充

  • npm 之外的其他包管理工具,若依赖 npm 镜像源,通常存在两个共性问题:

    • 仅能下载:模块只能从镜像源下载,发布新包仍需通过 npm 官方源。
    • 同步延迟:新发布的包或版本更新,镜像源往往滞后 10-30 分钟才能同步。

nrm:npm 镜像源管理工具

nrm一款专为管理 npm 镜像源设计的命令行工具,简化了镜像源的切换、新增、删除等操作。

安装

bash 复制代码
# 通过 npm 全局安装 nrm
npm i nrm -g
nvm -V
​
# 通过 npx 使用 nrm
npx nrm  -V

使用

bash 复制代码
# 查看所有可用源
nrm ls
perl 复制代码
# 切换到腾讯镜像
nrm use tencent

nvm:Node.js 版本管理工具

nvm一款轻量的 Node.js 版本管理工具,支持在同一台设备上安装、切换多个 Node.js 版本,解决不同项目对 Node 版本的兼容性问题。

安装

Linux/macOS 系统

通过官方脚本安装(需终端支持 curlwget):

bash 复制代码
# 方法1:使用 curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 方法2:使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

安装完成后,重启终端或执行以下命令使配置生效:

bash 复制代码
source ~/.bashrc  # 若用 bash 终端
# 或
source ~/.zshrc   # 若用 zsh  终端
  • Windows 系统

下载最新安装包:nvm-windows Releases(选择 nvm-setup.exe

bash 复制代码
# 验证是否安装成功
nvm version  

使用

arduino 复制代码
# 查看所有可用的NodeJs版本
nvm list available
bash 复制代码
# 查看当前 NodeJs版本
nvm current
bash 复制代码
# 下载 NodeJs 23.11.1版本
nvm install  23.11.1
perl 复制代码
# 切换当前 NodeJs版本至23.11.1
nvm use  23.11.1

rimraf

rimraf是一个 Node.js 命令行工具,用于递归删除文件和目录

安装

bash 复制代码
# 通过 npm 全局安装 nvm
npm i rimraf -g
rimraf --help
​
# 通过 npx 使用 nrm
npx rimraf  --help

使用

bash 复制代码
# 删除当前目录下的 node_modules 文件夹
rimraf node_modules
​
# 删除指定路径的 dist 目录
rimraf ./build/dist
​
# 删除多个文件/目录
rimraf *.log temp/
相关推荐
mmsx4 分钟前
Android 手簿 ADB 无线调试全攻略:USB 转 WiFi 一键连接
android·前端
guwentian11 分钟前
Rolldown vs esbuild vs Webpack:Rust 打包器大战我们该怎么选
前端·webpack·rust·esbuild
特立独行的猫A18 分钟前
用纯 Rust 重写 Podcastfy:把网页、PDF 和一段文字,变成一档双人对话播客
前端
oooo_z25 分钟前
美股历史K线数据API接口选型指南:iTick覆盖1分钟到月线全周期
服务器·前端·javascript
今日无bug40 分钟前
从 0 到 1 搭建端侧 AI 项目:DeepSeek-R1 + WebGPU + React + TS + Tailwind 全栈笔记
前端·react.js·typescript
mmsx42 分钟前
MapLibre 实战 08|GPS 点漂了几百米才被发现:GCJ-02 纠偏原理与"转两次"陷阱
android·前端
李高钢44 分钟前
Python Flask 框架入门:从零搭建你的第一个 Web 应用
前端·python·flask
特立独行的猫A1 小时前
用仓颉语言写 Coding Agent:cjh 是怎么实现的
前端
特立独行的猫A1 小时前
cjh:基于华为仓颉语言的原生 Coding Agent Harness 实践与设计思考
前端
晚安日记wanna1 小时前
大文件分片上传的五层追问从 Blob 切片到秒传与弱网容错
前端·面试