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.

create-plugin 生成产物的 build 侧 devDependencies 内部不一致且落后仓库工具链 1–2 个 major:@vitejs/plugin-react ^4.2.1 的 peer 结构性无法被 vite ^7.3.1 满足 #3742

Closed

Description

@yinlianghui

记录于 #3716(PR #3733)实施期间,dev 因当时搜索配额限流按纪律移交 PM 代立;已搜重(create-plugin vite devDependencies),除 #3715/#3716 本族外无命中。#3716 修的是测试侧三依赖;本单是 build 侧五依赖的同型问题,且更硬:不是"落后",是结构性装不上。

事实(dev 实测)

模板(现位于 packages/create-plugin/src/templates.ts 的 DEV_DEPENDENCIES,PR #3733 迁入)同时声明:

  • '@vitejs/plugin-react': '^4.2.1' + 'vite': '^7.3.1'
  • npm view @vitejs/plugin-react@4.2.1 peerDependencies → {"vite": "^4.2.0 || ^5.0.0"}

即声明的组合永远无法满足该 peer——新脚手架插件 pnpm install 必报 peer 冲突,pnpm build 有风险。

完整漂移表(模板声明 vs 本仓实际):

依赖 模板 仓库实际
vite ^7.3.1 ^8.2.0(仓根)
@vitejs/plugin-react ^4.2.1 ^6.0.5(所有仓内 plugin)
vite-plugin-dts ^4.5.4 ^5.0.3
typescript ^5.9.3 ^6.0.3
vitest ^4.0.18 ^4.1.10

dev 的 artifact E2E 只在仓内实际版本(vite 8.2.0 等)下验证过、声明区间对(vite 7 + plugin-react 4)从未被验证——且如上所示已可证明坏。

修法方向

把 PR #3733 加入的 parity 测试(templates.test.ts,现只断言三条测试区间与仓根清单逐字一致)扩展到这五条 build 区间——一次性封死 #3711 门禁对 .ts 源码字面量盲区在整个模板清单上的残余。

附带观察(同文件,作本单一节不另立)

生成的 vite.config.ts 用 __dirname,vite 的 configLoader: 'native'(计划中的未来默认)不支持;vite 8 下实测已出警告并指路 import.meta.dirname。休眠问题,顺手修即可。

关联

#3716 / PR #3733(测试侧三依赖 + parity 测试)、#3711(版本宣称门禁的扫描面边界)、#3715(文档页重写,勿在文档转抄任何版本号)。

Activity

  1. self-assigned this
    on Aug 8, 2026
  2. yinlianghui commented on Aug 8, 2026

    @yinlianghui
    ContributorAuthor

    认领:PM 循环批 180(objectui 整仓席位,登记表 objectstack#4604)

    串行化闸门已过:PR #3733(#3716)已落 main,DEV_DEPENDENCIES 常量与 parity 测试均在 packages/create-plugin/src/templates.ts / templates.test.ts 就位。与在飞 #3739/#3724/#3593/#3717 文件面零相交。注意:#3715(create-plugin.mdx)在候派池但只动文档页,与本单不同文件,不互斥。

    会话:session_01GTRjn8xBqp75dk7kFupVRt
    分支:claude/issue-3742-scaffold-build-deps-parity
    Worktree:objectui-3742
    文件面:packages/create-plugin/(templates.ts、templates.test.ts,必要时该包自身 package.json)(越界即停)


    Generated by Claude Code

  3. yinlianghui commented on Aug 8, 2026

    @yinlianghui
    ContributorAuthor

    验收:PR #3754 ACCEPT(会话 session_01GTRjn8xBqp75dk7kFupVRt,PM 循环批 180)。

    【前提订正——本单标题论断被 dev 测量证伪,以此评论为公开更正】 标题称 @vitejs/plugin-react ^4.2.1 的 peer 结构性无法被 vite ^7.3.1 满足——不成立。原测量(出自 #3716 报告,PM 转立时未复核)查的是区间下限 @4.2.1 的 peer;^4.2.1 实际安装最高 4.x(4.7.0),其 vite peer 自 4.3.4/4.6.0 起已放宽至 ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0。dev 以 strict-peer-dependencies=true(严于本仓)真实解析修复前清单:exit 0、零 peer 警告。方法库教训:peer 判定必须解析区间的实际安装版本,不是下限字面量。 幸存论断(五区间无锚、落后 1–2 major、#3716 的 E2E 从未在声明区间下跑过)全部成立。

    交付内容:五 build 区间全部落锚——vite/typescript/vitest 锚仓根(循 #3733 选择),@vitejs/plugin-react、vite-plugin-dts 锚 packages/plugin-*(仓根不声明这两个,产物本就是 packages/ 的字面同级;19 个仓内 plugin 全体一致)+ 锚间交叉核对使锚选择非承重 + 完整性门(新增依赖无锚即红);__dirname → import.meta.dirname(实测比"警告"更重:native loader 下硬失败,4/4 loader 矩阵预测命中)。changeset 与注释明写漂移事实、明确不声称修 peer 冲突——诚实定界。

    证据:四逆向验证红如预测;artifact 冒烟走 vite 自己的 loadConfigFromFile 双 loader;peer sanity 全套零非可选冲突;CI 18/18 零失败。新立 #3755(lucide-react ^0.563.0 0.x caret 钉死无升级路径,在 dependencies 面、完整性门之外)入分诊池;__dirname 项按查重纪律评论既有 objectstack-ai/objectstack#25949 不开孪生,并补两条测量(native 硬失败、28 计数可能已陈旧)。


    Generated by Claude Code

  4. added 2 commits that reference this issue on Aug 10, 2026
    e473b6c
    b1204af
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