插件前端开发
1. 插件前端入口
src/web/main.tsx通常长这样:createRoot(document.getElementById("root")!).render( <StrictMode> <I18nProvider messages={messages} defaultLocale={defaultLocale}> <RootLayout> <RouterProvider router={routeOption} /> </RootLayout> </I18nProvider> </StrictMode>,
);2.defineRouteOption
@chatbuddy-ai/web-core提供的:export const routeOption = defineRouteOption({ base: `extension/${packageJson.name}`, identifier: packageJson.name, routes: [ { index: true, element: <BlogIndexPage /> }, { path: "article/:id", element: <ArticleDetailPage /> }, ], consoleMenus: [ { title: "文章管理", path: "/", icon: "file-text" }, ], consoleRoutes: [ { index: true, element: <ArticleListPage /> }, { path: "article/add", element: <ArticleAddPage /> }, ],
});3. 插件 HTTP:createPluginHttpClients
apiHttpClient,因为插件接口会多一层扩展标识符。import { createPluginHttpClients } from "@chatbuddy-ai/services"; const { apiHttpClient, consoleHttpClient } = createPluginHttpClients;/{extensionIdentifier}/api/*/{extensionIdentifier}/consoleapi/*apiHttpClient.get("/article/published");
consoleHttpClient.get("/article");4. 插件前端 service 目录建议
src/web/services/
├── base.ts
├── console/
├── web/
└── types/console/*管理后台 hooks
web/*前台页面 hooks
types/*扩展自己的前端类型
5. 插件 Vite 配置
export default defineExtensionViteConfig(packageJson, { server: { open: true, },
});base: /extension/{packageJson.name}.output/public6. 插件 tsup 配置
export default defineChatbuddy AITsupConfig;src/api/index.ts构建成可被主系统动态加载的后端入口。共 319 篇文档 · 内容同步自官方帮助中心