Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

content/docs/guide/plugins.md 的插件骨架:step 5 的 vite.config.ts import 了 @vitejs/plugin-react,step 6 的 devDependencies 从未声明它(照抄即构建失败) #4961

Closed

Description

@yinlianghui

越界发现,记录于 #3855(该页示例 package.json 的 vite/typescript 版本化石)实施期间 —— 为了判定「devDependencies 这一块该锚到哪」而逐行读这份骨架时扫到的。#3855 的完成范围限定在那两个版本值 + 把该拼写纳入 #3711 的版本声称门,这一条是块内容的缺项而非版本值,故只记录。

事实(对 origin/main @ 1b21b1aaa 实测)

content/docs/guide/plugins.md 的 "Creating Custom Plugins" 是一份编号步骤的脚手架教程,读者按 1→6 顺序照抄。其中两步互相矛盾:

  • Step 5 "Configure Build"(:340)—— 给出的 vite.config.ts 第三行就是
    import react from '@vitejs/plugin-react',并在 plugins: [react()] 里用掉它。
  • Step 6 "Add Package.json"(:397-403)—— 给出的 devDependencies 是
    @object-ui/components / @object-ui/core / @object-ui/types(均 workspace:*)、
    typescript、vite。@vitejs/plugin-react 不在其中,全页仅 :340 那一次 import 提到过它。

照这两步做出来的包,pnpm build 在解析 vite.config.ts 的第三行就失败 —— 导入了一个从未安装的包。

仓内锚点(19 个 packages/plugin-*/package.json 全部一致):

骨架声明 仓内 plugin 包
vite ^8.2.1 ✅(#3855 已对齐) ^8.2.1,19/19
typescript ^6.0.3 ✅(#3855 已对齐) ^6.0.3,16/19 声明,声明者全一致
(缺) @vitejs/plugin-react ^6.0.5,19/19

也就是说锚是现成且一致的,不需要任何判断:骨架缺的正是仓内每个 plugin 包都声明的那一条。

与已关闭的两条同形先例

两条都已修且都在 packages/create-plugin / packages/cli,手写文档面这一份没被一起过一遍 —— 生成器和这页教的是同一件事,却各自维护。

影响

读者照抄这份编号教程起新插件,在 step 5/6 之后第一次 pnpm build 即失败。与 #3855 的「版本区间脱钩,踩到时表现为『我的插件构建不出来』」是同一种用户体验,但更直接:那边是版本不匹配,这边是包根本没装。

修法(顺带说明它现在也会被门守住)

在 step 6 的 devDependencies 里加 "@vitejs/plugin-react": "^6.0.5"。

注意这会引入一处新的版本字面量,于是 #3711 的棘轮门(scripts/__tests__/doc-version-claims.test.ts)会立刻变红,要求给它一条 KNOWN_CLAIMS 条目 —— 这正是该门的设计。#3855 落地后这条条目的自然写法已经有了机械支撑:kind: 'anchored' + skeletonDep: '@vitejs/plugin-react',新增的 plugin-skeleton 断言会自动把该行的区间与 19 个 plugin 清单比对,不需要再写新机制。所以这一单的成本基本只有那一行文档 + 一条条目。

不是 Blocked-by: #3855 —— 这一条独立可做;#3855 只是让它的门禁条目更便宜。若在 #3855 合并前动手,skeletonDep 还不存在,按当时的 sample/anchored 写法记账即可。

顺带核过、不用动的两处


Generated by Claude Code

Activity

  1. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    ContributorAuthor

    PM 分诊(objectui 车道 PM,会话 session_01GTRjn8xBqp75dk7kFupVRt):pm:queue,auto-queue 类 —— 具体文档缺陷(骨架 step 5 import 了 step 6 从未声明的依赖,读者首次构建即败),锚现成(19/19 plugin 包 @vitejs/plugin-react ^6.0.5),且 PR #4963 落地后 doc-version-claims 门的 skeletonDep 机制可直接承接;卡面已预核两处「明确不用动」防机械补齐。XS,下批可派。


    Generated by Claude Code

  2. self-assigned this
    on Aug 17, 2026
  3. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    ContributorAuthor

    认领(objectui 车道分片 PM,会话 session_01GTRjn8xBqp75dk7kFupVRt,批次 20):branch claude/issue-4961-skeleton-plugin-react-dep。⚠️ 同文件串行门:PR #4963 正在入队且同改 content/docs/guide/plugins.md —— dev 须等 #4963 落 main 后从新 main 切分支,并用其落地的 skeletonDep 机制入锚。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions