NPM

发布 NPM 包与切换镜像源

学会将自己的代码发布到 NPM,并掌握切换国内镜像源加速依赖下载的方法。

🎯 引言

学会这篇文章,你将了解如何把一段可复用的代码打包发布到 NPM 上,供全世界的开发者使用。同时,你还会掌握切换 NPM 镜像源的技巧,解决国内下载依赖慢的问题。


🧱 NPM 镜像源是什么

我们平时执行 npm install 时,NPM 默认会从国外的官方仓库下载包。由于网络原因,国内访问可能会很慢,甚至失败。

镜像源就是官方仓库的副本,放在国内服务器上。切换成国内镜像后,下载速度会快很多。

常见的国内镜像源:

镜像源地址
淘宝 NPM 镜像https://registry.npmmirror.com
腾讯云镜像https://mirrors.cloud.tencent.com/npm
华为云镜像https://repo.huaweicloud.com/repository/npm

🛠 切换镜像源

查看当前镜像源

npm config get registry

临时使用指定镜像源

npm install dayjs --registry=https://registry.npmmirror.com

永久切换镜像源

npm config set registry https://registry.npmmirror.com

设置后再执行 npm config get registry,应该能看到新的地址。

如果你希望某个项目单独使用指定镜像源,可以在项目根目录创建 .npmrc 文件:
.npmrc
registry=https://registry.npmmirror.com
这样只有当前项目会使用这个镜像源,不影响全局设置。

⚠️ 发布包前要切回官方源

如果你要把包发布到 NPM 官方仓库,必须先切回官方源:

npm config set registry https://registry.npmjs.org

国内镜像源通常只有读取权限,无法发布包。


🚀 发布你的第一个 NPM 包

第 1 步:注册 NPM 账号

前往 https://www.npmjs.com 注册一个账号,并验证邮箱。

第 2 步:登录 NPM

在终端中执行:

npm login

按提示输入用户名、密码和邮箱,登录成功后会提示 Logged in as xxx

第 3 步:准备项目

创建一个文件夹,初始化项目:

mkdir my-first-npm-package
cd my-first-npm-package
npm init -y
发布前请确认 package.json 中的 name 在 NPM 上没有被占用。可以在 https://www.npmjs.com 搜索一下。

第 4 步:编写入口文件

创建 index.js

index.js
function sayHello(name) {
    return `Hello, ${name}!`;
}

module.exports = { sayHello };

第 5 步:发布

npm publish

如果一切顺利,你会看到提示,包就已经发布到 NPM 上了。

第一次发布时,建议把 version 设为 1.0.00.1.0。每次更新代码后,都需要手动提升 version,才能再次发布。

📦 更新已发布的包

更新代码后,需要修改版本号再发布。可以用:

npm version patch   # 修订号 +1,如 1.0.0 -> 1.0.1
npm version minor   # 次版本 +1,如 1.0.0 -> 1.1.0
npm version major   # 主版本 +1,如 1.0.0 -> 2.0.0

然后执行:

npm publish

🧾 小节总结

  • 国内网络下载 NPM 包慢时,可以切换国内镜像源加速。
  • 发布包前必须切回官方源 https://registry.npmjs.org
  • 发布包需要先注册 NPM 账号、登录、准备好项目、执行 npm publish
  • 更新包时要先提升 version,再重新发布。

❓ 知识问答

Q1:镜像源和 NPM 官方仓库有什么关系?

A:镜像源会定期同步官方仓库的内容,内容基本一致,但发布包必须在官方仓库进行。

Q2:为什么我在国内镜像源下无法发布包?

A:国内镜像源通常只提供下载服务,没有写入权限。发布包需要切回 https://registry.npmjs.org 并登录账号。

Q3:.npmrc 文件有什么用?

A:它可以为当前项目单独配置 NPM 行为,比如指定镜像源、设置代理、控制依赖安装策略等。

Q4:npm version patch 做了什么?

A:它会自动把 package.json 中的版本号最后一位加 1,比如 1.0.0 变成 1.0.1,并自动生成一次 Git 提交(如果有 Git 仓库)。


🧪 小练习

  1. 查看你当前电脑的 NPM 镜像源:
# 请在这里输入命令
  1. 尝试切换为淘宝镜像源,并安装任意一个包测试速度。
  2. (可选)注册一个 NPM 账号,尝试发布一个最简单的工具函数包。

🎉 恭喜你学会了切换镜像源和发布 NPM 包!下一篇我们会学习 package-lock.jsonnpm ci,让你的依赖管理更加稳定可靠。