多包管理方案:pnpm + changesets 的实践指南
ericwxy

在现代软件开发中,多包管理(monorepo)已经成为一种流行的项目组织方式。它允许我们在同一个仓库中管理多个包,这有助于代码共享、统一工作流和简化依赖管理。本文将介绍如何使用 pnpmchangesets 这两个工具来高效地管理你的多包项目。

为什么选择 pnpm + changesets?

pnpm 是一个高效的包管理器,它通过硬链接和符号链接来共享依赖,从而减少了重复依赖的安装。changesets 则专注于版本管理和发布流程,它通过自动化 CHANGELOG 的生成和版本号的更新,简化了发布过程。

初始化你的 monorepo

首先,你需要一个 monorepo。如果你还没有,可以创建一个新的 Git 仓库,并初始化 package.json

安装 pnpm

在项目根目录下,运行以下命令来全局安装 pnpm

1
npm install -g pnpm

配置 pnpm-workspaces

在项目根目录下创建一个 pnpm-workspaces.yaml 文件,并列出你的所有包:

1
2
3
# pnpm-workspaces.yaml
packages:
- 'packages/*'

安装依赖

使用 pnpm 安装所有包的依赖:

1
pnpm install

使用 changesets 管理版本

初始化 changesets

在项目根目录下运行以下命令来初始化 changesets:

1
npx changeset init

添加 changeset

当你对包进行更改时,添加一个新的 changeset:

1
npx changeset add

更新版本和生成 CHANGELOG

准备发布新版本时,运行以下命令:

1
npx changeset version

发布包

使用以下命令发布更新后的包:

1
npx changeset publish

执行命令

pnpm 提供了执行命令的功能,你可以指定特定的包或者所有包:

1
pnpm exec -r pnpm run build

配置自动化

changeset 集成到你的 CI/CD 流程中,以便在每次提交到主分支时自动执行版本更新和发布。

结论

pnpmchangesets 的组合为多包管理提供了一个强大且高效的解决方案。通过自动化依赖安装、版本管理和发布流程,这些工具帮助开发者节省时间,专注于代码的编写和功能的实现。如果你正在寻找一个可靠的多包管理方案,那么 pnpmchangesets 值得一试。

 评论
评论插件加载失败
正在加载评论插件