Modern.js 模块项目的版本管理与发布指南
前言
在现代前端开发中,良好的版本管理和发布流程是保证项目质量的重要环节。Modern.js 为模块项目提供了一套完整的版本管理和发布解决方案,本文将详细介绍如何使用 Modern.js 提供的工具链进行项目版本管理和发布。
版本管理与发布流程概述
Modern.js 模块项目的发布流程分为两个主要阶段:
- 开发阶段:开发者需要记录项目变更,生成变更日志文件
- 发布阶段:收集所有变更日志,更新版本号,生成发布日志,并发布新包
详细操作指南
1. 记录项目变更
在开发过程中,每当项目发生重要变更时(如新增功能、修复问题、配置文件变更等),都应该记录这些变更。
使用以下命令记录变更:
npx modern change
执行命令后,系统会交互式询问几个问题:
- 变更类型(如 patch、minor、major)
- 变更摘要(将出现在变更日志中)
成功执行后,会在项目的 .changeset
目录下生成一个 Markdown 格式的变更日志文件,内容示例如下:
---
"module-example": patch
---
publish test
2. 版本号更新
当需要更新项目版本时,执行以下命令:
npx modern bump
该命令会根据 .changeset/
目录下的变更记录文件:
- 更新
package.json
中的版本号 - 生成
CHANGELOG.md
文件 - 删除已处理的变更记录文件(这些文件被"消耗")
生成的 CHANGELOG.md
文件示例:
# module
## 0.1.1
### Patch Changes
- publish test
3. 项目发布
要发布项目到 npm 仓库,执行以下命令:
npx modern release
默认情况下,发布的是 latest
版本(正式版)。如果需要指定不同的发布标签(dist-tag),可以使用:
npx modern release --tag beta
4. 预发布流程
在某些情况下,我们可能需要先发布预发布版本(如 alpha、beta、rc 版本),Modern.js 也提供了相应的支持。
进入预发布模式
npx modern pre enter next
这里的 next
是预发布标签,可以根据需要替换为 alpha
、beta
等。
更新预发布版本号
npx modern bump
此时,package.json
中的版本号会变为类似 0.1.2-next.0
的形式。
注意:在预发布模式下,变更记录文件不会被"消耗",可以保留用于后续正式发布。
退出预发布模式
当不再需要预发布时,务必执行以下命令退出预发布状态:
npx modern pre exit
退出后,再次执行 modern bump
将会生成正式版本。
最佳实践建议
- 及时记录变更:建议在完成每个功能或修复后立即记录变更,避免遗漏
- 语义化版本控制:遵循语义化版本规范(SemVer)选择适当的变更类型(patch/minor/major)
- 预发布验证:对于重要更新,建议先发布预发布版本进行充分测试
- 清晰的变更描述:在记录变更时提供清晰、具体的描述,方便生成有意义的变更日志
常见问题解答
Q: 如果误操作进入了预发布模式怎么办?
A: 执行 npx modern pre exit
即可退出预发布模式。
Q: 变更记录文件可以手动编辑吗? A: 可以,变更记录文件是标准的 Markdown 文件,可以根据需要手动编辑。
Q: 为什么有时候执行 modern bump
后变更记录文件没有被删除?
A: 在预发布模式下,变更记录文件不会被自动删除,这是预期行为。
通过 Modern.js 提供的这套版本管理和发布工具,开发者可以更加规范、高效地管理项目版本,确保发布流程的可靠性和可追溯性。