Skip to content

content/docs/guide/plugins.md 的示例 package.json 里 vite ^5.0.0 / typescript ^5.0.0 落后仓内三个与一个 major(#3709 同族化石,文档面最后两处) #3855

Description

@yinlianghui

越界发现,记录于 #3827(cli 生成产物清单锚定)实施期间 —— 按"规则消费半径而非编辑包"扫一遍文档面有没有同类化石时扫到的。#3827 的文件面是 packages/cli/src/utils/app-generator.ts,这一条在 content/,故只记录。

事实(对 origin/main @ 844d17fc9 实测)

content/docs/guide/plugins.md:394-403,一份教作者怎么写插件包 package.json 的示例:

  "devDependencies": {
    "@object-ui/components": "workspace:*",
    "@object-ui/core": "workspace:*",
    "@object-ui/types": "workspace:*",
    "typescript": "^5.0.0",
    "vite": "^5.0.0"
  }

对照仓内实测(扫 46 个仓内 manifest 的 dependencies + devDependencies,均一致):

文档示例 仓内锚点 差距
vite ^5.0.0 ^8.2.0(28 处一致) 3 个 major
typescript ^5.0.0 ^6.0.3(38 处一致) 1 个 major

这与 #3709 修掉的 create-plugin.mdx@object-ui/core ^0.3.0、以及 #3742 / #3827 处理的生成器化石是同一族:示例/生成物里的版本区间与仓内真实工具链脱钩。

扫全 content/ 的结果:这是仅剩的两处。
grep -rn '"vite": "\^[0-7]\|"typescript": "[\^~][0-5]\|"@vitejs/plugin-react": "\^[0-5]\|"tailwindcss": "\^[0-3]' content/
只命中这一个文件的这两行 —— 也就是说文档面的这族化石收口到这一处,修掉它这一族在 content/ 就清了(生成器面由 #3827 / #3826 覆盖,packages/components README 的 Tailwind 3 写法是 #3780,cli 生成产物的 Tailwind 3 全套是 #3852)。

顺带一提该示例的 peerDependenciesreact: ^18.0.0 || ^19.0.0,与仓内平台包的 peer 面一致,不用动 —— peer 说的是"能接受什么",与"本仓装哪个"是两回事(#3827 的锚定表按同一判据把 peer 排除在锚源之外)。

影响:今天没有东西是红的(故打 finding)

  • 纯文档示例,不参与构建,也没有测试断言它。
  • 会咬人的场景:作者照抄这份 devDependencies 起新插件,拿到的是 vite 5 / TS 5,与仓内 vite 8 / TS 6 的构建配置(以及 @vitejs/plugin-react ^6.0.5 的 peer 面)不一致,踩到的问题会以"我的插件构建不出来"的形式出现,而根因在文档。
  • test(scripts): 给文档散文里的版本宣称落一道棘轮门禁(带历史叙述结构性豁免) #3711 的 version-claims 闸门扫的是文档面 —— 值得顺手确认它为什么没抓到这两行(是不是只认某几种写法),否则修完这一处,下一处照样溜进来。这个确认本身可能是这一单更有价值的一半。

可选方向(不预设结论)

  1. 改成仓内实测值并交给闸门守(^8.2.0 / ^6.0.3),同时查明 test(scripts): 给文档散文里的版本宣称落一道棘轮门禁(带历史叙述结构性豁免) #3711 闸门为何漏掉这两行、能否覆盖到。最彻底,和 create-plugin 生成产物的 build 侧 devDependencies 内部不一致且落后仓库工具链 1–2 个 major:@vitejs/plugin-react ^4.2.1 的 peer 结构性无法被 vite ^7.3.1 满足 #3742 建立的判据一致。
  2. 示例里干脆不写版本(改成 "vite": "*" 或把这两行删掉,让读者用 pnpm add -D vite typescript 装当前版本)。示例不再承担锚定义务,也就不会再化石化 —— 与 create-plugin 生成产物的 dependencies 里 lucide-react: '^0.563.0' 被钉死在 0.563.x(仓内 23 处均为 ^1.28.0),且没有任何生成的源文件 import 它 #3755 删掉无人 import 的声明是同一取向(不维护一张没人守的表)。
  3. 只改值,不碰闸门。最省事,但下一次仓内 bump 之后还会漂。

倾向方向 1(要连闸门一起看);若判定文档示例不值得维护锚定表,方向 2 也自洽。


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions