在 #3709 的修复过程中读 packages/create-plugin/src/index.ts 全文时量到的。与 #3709(文档记错产物)和 #3715(整页失真)都不同:这一条是生成器本身的缺陷,产物在自己的机器上就跑不起来。
事实
生成器写入 src/PascalImpl.test.tsx(index.ts:322-345),内容包含:
import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
...
expect(screen.getByText('Pascal Plugin')).toBeInTheDocument();
同一个生成器写入的 devDependencies(index.ts:154-160)只有五项:
'@vitejs/plugin-react', typescript, vite, 'vite-plugin-dts', vitest
即:
@testing-library/react 没有声明 —— npm test(脚本是 vitest run)在解析 import 时即失败;
toBeInTheDocument() 来自 @testing-library/jest-dom,同样没有声明,而且模板也没有写任何 vitest setup 文件去注册它的 matcher;
- 生成的
vite.config.ts(index.ts:187-217)没有 test 段,没有 environment: 'jsdom',也没有 setupFiles —— 即便补上前两个依赖,渲染仍会因为默认 node 环境而失败。
三者叠加:脚手架产物的 npm test 从第一次运行起就是红的,而它同时是模板唯一的示例测试。
为什么值得修
create-plugin 的卖点之一是文档写的 "Ready to Develop - Start coding immediately"。新插件作者的第一条命令通常就是 npm test,拿到的是一个不像自己写错、更像仓库坏了的解析错误。
处置倾向(不替分诊拍板)
两条路,都在 packages/create-plugin/src/index.ts 内:
- A 补齐 —— devDependencies 加
@testing-library/react、@testing-library/jest-dom、jsdom,vite.config 模板加 test: { environment: 'jsdom', setupFiles: [...] } 并写一个 setup 文件。产物开箱即绿。
- B 减掉 —— 不再生成示例测试,
test 脚本也去掉,把测试栈的选择留给插件作者。
倾向 A:模板已经替作者选了 vitest(scripts 与 devDependencies 都在),选了一半却留一个跑不通的示例,比不选更糟;而且 A 之后可以用一条「生成到临时目录并跑一次 install + test」的测试把它钉住,B 则没有可钉的对象。但这属于模板契约取舍,留给分诊。
注:补的版本区间同样受 #3711 门禁约束的那条仓规影响 —— 它们写在 .ts 源码里而不是散文里,不在该门禁的扫描面上,但同样会漂;若选 A,值得顺带考虑这些区间的来源(与本仓根清单对齐,而不是各写各的)。
已搜重
create-plugin generator template testing-library、create-plugin scaffold docs 两组关键字搜过开放 issue,无命中。
Generated by Claude Code
在 #3709 的修复过程中读
packages/create-plugin/src/index.ts全文时量到的。与 #3709(文档记错产物)和 #3715(整页失真)都不同:这一条是生成器本身的缺陷,产物在自己的机器上就跑不起来。事实
生成器写入
src/PascalImpl.test.tsx(index.ts:322-345),内容包含:同一个生成器写入的
devDependencies(index.ts:154-160)只有五项:即:
@testing-library/react没有声明 ——npm test(脚本是vitest run)在解析 import 时即失败;toBeInTheDocument()来自@testing-library/jest-dom,同样没有声明,而且模板也没有写任何 vitest setup 文件去注册它的 matcher;vite.config.ts(index.ts:187-217)没有test段,没有environment: 'jsdom',也没有setupFiles—— 即便补上前两个依赖,渲染仍会因为默认 node 环境而失败。三者叠加:脚手架产物的
npm test从第一次运行起就是红的,而它同时是模板唯一的示例测试。为什么值得修
create-plugin的卖点之一是文档写的 "Ready to Develop - Start coding immediately"。新插件作者的第一条命令通常就是npm test,拿到的是一个不像自己写错、更像仓库坏了的解析错误。处置倾向(不替分诊拍板)
两条路,都在
packages/create-plugin/src/index.ts内:@testing-library/react、@testing-library/jest-dom、jsdom,vite.config 模板加test: { environment: 'jsdom', setupFiles: [...] }并写一个 setup 文件。产物开箱即绿。test脚本也去掉,把测试栈的选择留给插件作者。倾向 A:模板已经替作者选了 vitest(scripts 与 devDependencies 都在),选了一半却留一个跑不通的示例,比不选更糟;而且 A 之后可以用一条「生成到临时目录并跑一次 install + test」的测试把它钉住,B 则没有可钉的对象。但这属于模板契约取舍,留给分诊。
注:补的版本区间同样受 #3711 门禁约束的那条仓规影响 —— 它们写在
.ts源码里而不是散文里,不在该门禁的扫描面上,但同样会漂;若选 A,值得顺带考虑这些区间的来源(与本仓根清单对齐,而不是各写各的)。已搜重
create-plugin generator template testing-library、create-plugin scaffold docs两组关键字搜过开放 issue,无命中。Generated by Claude Code