核心是分别配置 Node 二进制镜像和 npm 包镜像:用 nvm node_mirror 和 nvm npm_mirror 设置国内 Node 下载源(如 https://npmmirror.com/mirrors/node/),再用 npm config set registry 设置 npm 包源(如 https://registry.npmmirror.com),并通过 nvm get mirror 验证双源生效。
在 macos 上切换 node.js 镜像源,核心目标是加速 nvm install 下载 node 二进制包的过程,而非仅改 npm 包源。很多人混淆了这两者,结果配置了 npm 镜像却仍卡在 “downloading and installing node” 阶段——那是因为下载 node 本身还没走国内通道。
明确区分:Node 二进制源 vs npm 包源
nvm 安装 Node 版本时,从 nodejs.org 下载的是预编译的二进制文件(如 v18.19.1-darwin-arm64.tar.xz),这个过程由 nvm 自己控制,和 npm 无关。而 npm install 安装模块时才用到 npm registry 源。
因此需分别设置:
-
Node 二进制镜像:用
nvm node_mirror指向国内 Node 镜像站 -
npm 包镜像:用
nvm npm_mirror或npm config set registry设置
推荐镜像组合(2026 年实测稳定)
清华、npmmirror(原淘宝镜像)目前同步及时、节点稳定。建议统一使用 npmmirror 域名,避免旧链接失效:
- Node 二进制源:
https://npmmirror.com/mirrors/node/ - npm 包源:
https://registry.npmmirror.com
执行命令一次性配齐:
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/
npm config set registry https://registry.npmmirror.com
验证是否生效
不要只看 npm config get registry,那只能确认 npm 包源。真正关键的是 Node 下载环节:
- 运行
nvm get mirror,确认输出中两行地址都已更新 - 执行
nvm install 20.15.0,观察终端日志是否显示类似Fetching node version 20.15.0...后快速进入解压阶段,而非长时间卡在 “Downloading…” - 安装成功后,在项目中运行
npm install,检查模块下载速度是否明显提升
进阶:避免全局污染,按项目隔离镜像偏好
某些老项目依赖特定 npm 插件或私有 registry,不希望被全局镜像影响。可利用 .npmrc 文件实现项目级覆盖:
- 在项目根目录新建
.npmrc - 写入:
registry=https://registry.npmjs.org/(恢复官方源)或指向企业内网源 - nvm 切换版本 + npm 安装时会自动优先读取该文件,无需手动干预


















