定义
npm(Node Package Manager)是一个 JavaScript 包管理器,它允许开发者安装、共享和管理依赖,npm 也是一个cli,用于与 npm 的在线服务交互,这个在线服务就是 npm registry。
npm registry 是一个大型的数据库,用于存储公开发布的 JavaScript 代码包。当使用 npm install 命令安装一个包时,npm 客户端会与 npm registry 通信,下载并安装请求的包。
npm 镜像源是 npm registry 的一个镜像,它包含了 npm 官方库中的所有包的副本,用于提高下载速度,特别是在某些地区访问官方源可能较慢或不稳定的情况下。通过切换到一个更快或地理位置更近的镜像源,开发者可以更快地下载和安装 npm 包。
可用源
npm 官方原始镜像
国内访问极慢,甚至不能访问
yarn 官方源
慎用,国内不能访问
淘宝 NPM 镜像
registry.npmmirror.com 或 registry.npm.taobao.org
registry.npm.taobao.org 和 registry.npmmirror.com 实际上它们指向的是同一个服务。根据最新的信息,原来的 registry.npm.taobao.org 已经被替换为 registry.npmmirror.com。当点击 registry.npm.taobao.org 时,会自动跳转到 registry.npmmirror.com,现在推荐使用registry.npmmirror.com。
原淘宝 npm 域名即将停止解析,正如在《淘宝 NPM 镜像站喊你切换新域名啦》 中预告的那样:npm.taobao.org 和 registry.npm.taobao.org 将在 2022.06.30 号正式下线和停止 DNS 解析。域名切换规则:
npm.taobao.org => npmmirror.com registry.npm.taobao.org => registry.npmmirror.com
npm config set registry https://registry.npmmirror.com
腾讯云 NPM 镜像: mirrors.cloud.tencent.com/npm/
npm config set registry http://mirrors.cloud.tencent.com/npm/
华为云 NPM 镜像: mirrors.huaweicloud.com/repository/…
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
设置源
使用命令行设置全局源
npm config set registry
使用命令行查看全局源
npm config get registry
使用 nrm 工具管理多个源
nrm 是一个 npm 源管理器,可以快速切换不同的源。首先安装 nrm:
npm install -g nrm
然后使用 nrm use 来切换源,例如:
nrm use taobao
设置临时源
只针对当前 npm install
命令生效
在命令行中临时为要安装的包指定源: 通过 --registry 参数来临时指定源。例如:
npm install express --registry https://registry.npmmirror.com
设置项目源
该方法只针对当前项目生效
创建项目根目录下的 .npmrc 文件。在 .npmrc 文件中添加或修改 registry 的值:
registry=https://registry.npmmirror.com
保存 .npmrc 文件后,可以通过运行 npm config ls 命令来查看当前项目的配置,确保源已经被正确设置。
设置命名空间源
该方法只针对某个命名空间的内的包生效,例如 @xdf/xxx
在 .npmrc 中设置
@xdf:registry=https://registry.npmmirror.com
或者使用命令行操作:
npm config set "@xdf:registry" "https://registry.npmmirror.com"
总结
npm 源配置常用方法以上都已列出,对于 yarn
和 pnpm
用法也是一致的,只不过yarn的配置文件使用 .yarnrc。