第 6章 更新于 2026年8月17日
开发 6 · 跟上官方更新,和把好东西贡献回去
官方仓库的新功能怎么安全合并进你的站(冲突时永远保留你自己的游戏配置和文章),版本号的兼容承诺,以及给 AnvilWiki 提改进、上展示墙的完整路径。
你现在在哪,这章解决什么
模板作者一直在发新版:修 bug、加功能。你的站要不要跟?怎么跟才不会把你自己的游戏名、颜色、文章冲掉?以及反过来——你改出了好东西,怎么让它回到官方模板里。查询手册,升级时翻。
把官方更新搬进你的站(每次 10 分钟)
# 1. 第一次才要跑:把官方仓库设为「上游」关注对象
git remote add upstream https://github.com/PNGTRID/AnvilWiki.git
# 2. 以后每次升级只跑这三行
git fetch upstream
git merge upstream/main
# 3. 合并后验证
pnpm check-config && pnpm typecheck && pnpm test
pnpm build && pnpm check-links
遇到冲突(终端出现 CONFLICT 字样)时,答案背下来:
- 配置层、内容层的冲突 → 永远保留你自己的(你的游戏名、颜色、文案、文章)
- 代码层的冲突 → 优先收官方的(那是修好的东西);你改过代码层才需要动脑,没改过就无冲突
为什么这么省心:官方的新功能几乎全落在代码层(你最不碰的层),冲突高发区恰好是你「本来就该保留自己」的区域。
合并完记得:跑一遍上面的验证;pnpm check-i18n 会列出官方新增的界面文字里,你还没翻译的部分。
官方的版本号承诺(决定你要不要升)
版本号三段式 主版本.次版本.补丁(如 1.13.0):
| 升什么 | 意味着 | 你的动作 |
|---|---|---|
| 补丁号变(1.13.0 → 1.13.1) | 修 bug | 直接合并,放心 |
| 次版本变(1.12 → 1.13) | 新功能,默认关闭或向后兼容 | 合并后行为不变,想要的新功能自己去开 |
| 主版本变(1.x → 2.0) | 有不兼容改动 | 看官方 CHANGELOG 的迁移说明再动手 |
三条长期承诺:文章登记卡的字段只加不改名(你的旧文章永远能构建);所有可选功能默认关闭(升级不会偷偷开广告);语言 JSON 缺条目自动用英文兜底(不会因为官方加了新文字你就构建失败)。
完全不想跟行不行:行。这是静态站,不是订阅服务——冻结在某个版本永远能跑。但建议至少合并补丁级更新(安全和 bug 修复),用 git cherry-pick 挑着合也行。
把你的改进贡献回去
- 先开 issue 讨论:到仓库 Issues 描述你的场景和想法(大改动先看官方 PRD 有没有相关决策,避免白做)。
- 开分支写代码,遵守架构章的楼层规矩(文字进 JSON、颜色用变量、零 JS 框架)。
- 自验:
pnpm lint && pnpm typecheck && pnpm test && pnpm build全绿。 - 提 PR,描述里贴验证输出,等 CI 绿、等作者审。
- 加了纯函数(放
src/lib/的)记得配测试;加了组件记得补文档。
你的站本身也能贡献:提 PR 把它加进官网展示墙(改 src/config/landing.ts 里的 showcase 数据)——真实的成功站,是这套模板最有说服力的广告。
(给模板本身发版本的完整流程是维护者视角的事,记录在仓库 docs/development.md,这里不重复。)
卡住了怎么办
- 「merge 冲突看不懂」:把冲突文件的冲突段贴给 AI 助手,告诉它「配置和内容保留我的,代码听官方的」,让它逐个解决,解决完跑验证三件套。
- 「合并完构建挂了」:跑
pnpm build看报错的文件——多半是官方改了结构、你本地改过同一处;按「配置保留我的」原则处理后重试。
✅ 验收(全部成立才算完成)
- 合并官方更新后,验证三件套全绿
- ☐ 所有配置/内容冲突都保留了你自己的值(逐个看过 diff)
- ☐ check-i18n 列出的新增文字,要么已翻译、要么明确接受英文兜底
下一章
上游同步解决了「模板在长」,最后一章解决「站在长起来的网站上,让 AI 替你跑运营循环」——anvilwiki-ops 命令行与 MCP。