用途:为 npm 包的新版本发布做系统化准备,按顺序执行各步骤,每步必须通过才继续。
主要能力与流程:
- 收集发布意图:询问版本提升类型(patch/minor/major/指定版本/预发布标签)、预发布标签(如 alpha、beta、rc)以及 CHANGELOG 的 [Unreleased] 是否完整;若用户已明确意图则跳过。
- 预检:运行 npm i 与 npm test(须退出码 0,含 lint、类型、测试),并并行运行 npm outdated 和 npm audit 报告给用户;测试失败则停止修复。
- 版本提升:读取 package.json 当前版本,按 semver 计算新版本(patch 1.2.3→1.2.4;minor→1.3.0;major→2.0.0;prerelease 1.2.3→1.2.4-<label>.0 或递增;去除预发布后缀),用 StrReplace 更新 version,而非 npm version。
- 更新 CHANGELOG.md:顶部 [Unreleased],发布条目为 ## [Version] - YYYY-MM-DD(ISO 8601),最新在前;变更类型分 Added、Changed、Deprecated、Removed、Fixed、Security;条目为过去时、首字母大写、人工整理;底部维护 footnote 式比较链接。用 git log 自上一 tag 起(无 tag 回退 HEAD~20)生成条目。
- TypeScript 声明:若存在 .d.ts,运行 npx tsc 须无错误,并核对公开 API 与实际导出一致、无内部字段泄漏。
- README 与许可证复核:更新年份,检查用法示例、徽章、配置表、API 参考是否过时,仅修正事实错误。
- 包审计:核对 main/module/exports、types、files、engines、keywords、license、repository、homepage;运行 npm pack --dry-run 检查文件列表与体积。
- 最终验证:再次运行 npm test 须退出码 0。
- 汇总与后续:输出包名、版本变化、测试与类型状态、打包文件数与大小,并列出需人工执行的 git add/commit、git tag、git push、npm publish(预发布用 --tag <label>)。
- 最后运行 npm i 刷新 package-lock.json。
限制:不会自动执行 npm publish 或 git push,须由用户操作或明确确认。资料未提供该技能的收费、价格、平台支持范围等信息。