SuperAPI AI 工具集

btst-build-config

编程与开发

查看项目

更新于 10-16 05:01

技能介绍

用途:为 BTST 单体仓库配置构建,适用于新增插件入口点、包导出、CSS 导出,并同步更新三个示例应用。

主要能力与用法: 新增导出路径时,必须同时更新两个文件。packages/stack/build.config.ts 的 entries 数组加入插件入口,如 ./src/plugins/{name}/api/index.ts、client/index.ts、client/hooks/index.tsx、client/components/index.tsx、query-keys.ts;packages/stack/package.json 同时添加 exports 与 typesVersions,两者缺一不可,缺少 typesVersions 会导致 TypeScript 消费者无法解析。

CSS 导出:带 UI 组件的插件需要 src/plugins/{name}/client.css 与 style.css 两个文件,postbuild.cjs 会自动发现并复制,只需在 package.json exports 添加 "./plugins/{name}/css" 条目。

更新三个代码生成项目:新增插件、修改插件配置或框架入口点时,需更新 Next.js、React Router、TanStack 三个项目中的 stack.ts、stack-client.tsx、布局文件与全局 CSS。生成的路由必须使用 v3 入口工厂(如 toNextRouteHandlers、createNextPage、nextRouter() 等),不要手写路由解析、loader/meta 排序、水合或 404 逻辑。布局通过 StackProvider 传入已解析的 client stack,overrides 只放插件专属值。

共享 UI 组件位于 packages/ui/src/components/,可用 pnpm dlx shadcn@latest add {component-name} 添加,并以 @workspace/ui/button 形式导入。

修改后运行 pnpm build;若 turbo 缓存陈旧,运行 pnpm turbo clean && pnpm build。

限制与注意:缺少 typesVersions、构建缓存未清理、CSS 未加载、@workspace/ui 子路径组件未登记到 EXTERNAL_REGISTRY_COMPONENTS、使用过时 v2 模板等均会导致问题。