SuperAPI AI 工具集

spree-dashboard-plugins

通用与其它

查看项目

更新于 10-16 04:30

技能介绍

用途:将 Spree 6 React 仪表盘的自定义项打包为可复用的 npm 插件,供多个商店或项目安装;多数插件还需一个 Rails 扩展 gem 提供后端接口。仪表盘处于开发者预览阶段(@spree/dashboard-* 1.0.0-beta.x)。仅为自有商店定制时,应直接写在 apps/dashboard/src/plugins.ts,仅在多个项目共用时才打包。

主要能力:插件入口在导入时调用 defineDashboardPlugin({...}),使用与内置定制相同的注册表(nav、settingsNav、routes、slots、tables、formFields 等),差异在于包管理:peer 依赖、自动发现、文件路由与发布。页面以 TanStack 文件路由形式编译进宿主的类型化路由树,需在 package.json 的 spree.dashboard.routes 声明目录。宿主通过 spreeDashboardPlugin() 扫描依赖中含标记的包,自动激活、注入 Tailwind @source 并合并路由。

使用方式:用 npx @spree/cli plugin new reviews --npm-scope @acme --ruby-name spree_reviews --module-name Reviews 脚手架生成 dashboard 半部分;后端需另建扩展 gem。安装示例:pnpm add @acme/reviews-dashboard,后端 bundle add spree_reviews && bin/rails g spree_reviews:install && bin/rails db:migrate。发布前去掉 private 并用 pnpm publish --access public。

限制:React、dashboard 包、TanStack、i18next、lucide 须放 peerDependencies,否则注册表重复导致插件无效;不可自行指定 @base-ui/react 版本;仅从入口导入,避免深层导入。必须保留 sideEffects 与源码目录,否则被 tree-shake 或样式丢失。打包插件用 routes: 注册页面会失去类型且被同名文件路由遮蔽;文件路由不做 subject 门禁,需在组件内自行控制。键名与 API 路径必须加命名空间,重复键会在启动时报错。CLI 只生成 dashboard 半部分,后端接口需自行开发,否则示例页面 404。安装或升级后需重启开发服务器。配置化插件应使用 definePlugin 工厂。版本应同步,变更 nav/route 键、槽位、locale、表键等视为公共 API,破坏性变更需升主版本。