Skip to content

create-plugin.mdx 记录的脚手架产物与 packages/create-plugin/src/index.ts 实际生成的不符(版本错、字段也错) #3709

Description

@yinlianghui

Blocked-by: #3711

#3697 的门禁落地过程中全量测量 content/docs 时量到的。这一条比单纯的版本陈旧重一档:文档描述的形状本身就不是脚手架的输出

事实

content/docs/utilities/create-plugin.mdx:145-156 展示 create-plugin 生成的 package.json,称其中有:

  "peerDependencies": {
    "@object-ui/core": "^0.3.0",
    "@object-ui/components": "^0.3.0",
    "react": "^18.0.0"
  }

packages/create-plugin/src/index.ts:143-153 实际写入的是:

    dependencies: {
      '@object-ui/components': 'workspace:*',
      '@object-ui/core': 'workspace:*',
      '@object-ui/react': 'workspace:*',
      '@object-ui/types': 'workspace:*',
      'lucide-react': '^0.563.0'
    },
    peerDependencies: {
      react: '^18.0.0 || ^19.0.0',
      'react-dom': '^18.0.0 || ^19.0.0'
    },

三处不符,逐条:

文档 实际 性质
@object-ui/core^0.3.0peer workspace:*dependency 版本错 字段错
@object-ui/components 同上 同上 同上
react peer 为 ^18.0.0 ^18.0.0 || ^19.0.0,另有文档完全没提的 react-dom peer 少报了 React 19 支持,漏了一个 peer

^0.3.00.x 预发布期的遗留数字 —— content/docs/guide/release-notes.md 自己记着 v3.3.0 是「first official release」,0.x 早已是历史。

为什么这条值得单独修

读者照这份文档手写插件的 package.json,会写出一个把 @object-ui/core 声明成 ^0.3.0 peer 的包:那个版本区间在 npm 上对不上任何当前发布物,安装即失败或拉到远古版本。这不是「读到一个旧数字」,是「照做会坏」。

处置倾向(不替分诊拍板)

最省事且符合 #3645 仓规的做法:文档不再逐字复制这个块,改为指向 packages/create-plugin/src/index.ts 的模板,或只展示 name/scripts 这类不含版本号的部分。若要保留完整样例,则它天然是一个应当由测试钉住的对照 —— 与 scripts/__tests__/ci-cd-pipeline-doc.test.ts 把文档钉到 workflow 的形状一致。

门禁现状

#3697 的 PR 已把这三行以 kind: 'stale' 记进 scripts/__tests__/doc-version-claims.test.ts 的清单。本单修好后须同步删掉那三条条目,否则 ratchet 测试会变红(设计如此:清干净文档就必须让清单缩短)。

已搜重

create-plugin scaffold docs package.json版本 文档 失真 drift docs version 两组关键字搜过开放 issue,无命中。


Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions