Skip to content

Release Process

CatsInJune edited this page Oct 30, 2026 · 1 revision

发布与贡献

本地开发

npm install          # 或 pnpm install
npm run test         # vitest 单测(含 DOM 测试,happy-dom)
npm run typecheck    # tsc --noEmit
npm run build        # vite build + scripts/split-fonts.mjs 拆字体

演示站点在 site/:交互 demo、文档站与性能基准(见性能与基准)。推送到 main 后自动部署到 GitHub Pages。

发版流程

  1. 版本号只改 package.json——README 的版本徽标与站点展示自动跟随,不要手工同步别处
  2. release 提交放在 PR 的功能分支上(chore(release): x.y.z——摘要),随 PR 一起合入 main
  3. 合并后在本地执行 npm publish(prepublishOnly 钩子会先跑 build)
  4. 不打 git tag、不发 GitHub Release(已停用);版本历史记录在 Changelog 与 git log --grep="chore(release)"

依赖规则

  • 所有 @tiptap/* 依赖精确版本、不带 ^(原因见设计决策)——新增依赖后自查 package.json 里的 @tiptap 行
  • react / react-dom 是 peer dependencies;Tiptap 与 lowlight 以 transitive dependencies 随包安装,使用者无需单独安装

文档分工

载体 内容
README 快速上手 + 完整 API 表(英文)
本 Wiki 深入文档:往返规则、架构、性能、设计决策(中文)
文档站 可交互 demo,推送 main 自动部署

测试约定

  • 单元测试与 DOM 测试共存于 src/(.dom.test.tsx 用 happy-dom)
  • 视觉/布局改动没有快照测试;用 headless Chrome 量几何,或走站点预览人工验收
  • 涉及 markdown 往返的行为变更必须补往返用例(参见 src/*.test.ts 中 getMarkdown() 断言的写法)

Clone this wiki locally