Repository navigation
Core Build
worable edited this page Oct 12, 2026
·
1 revision
pnpm build 分两步执行:先编译所有插件与主题的前端包,再按 workspace 拓扑顺序递归构建。
pnpm build # 构建全部(先 frontend,再 -r build)
pnpm build:frontend # 仅构建插件/主题的前端包
pnpm -r build # 递归构建所有 workspace 包pnpm build 的执行顺序:
-
build:frontend—node scripts/build-frontend.mjs,编译所有主题和插件的frontend/到frontend/dist/,同步到data/并生成 web 的frontend-registry.ts -
-r build— 递归构建,按 workspace 拓扑顺序:-
@stackpanel/db→ Prisma Client 生成 + dist -
@stackpanel/sdk→ 类型与工具函数 -
@stackpanel/spec→ 契约单一来源(API 版本 / OpenAPI 投影) -
@stackpanel/ui→ 共享组件 -
@stackpanel/plugin-*→ 各内置插件 dist -
@stackpanel/api→ tsup 打包到dist/ -
@stackpanel/web→ Next.js 构建到.next/
-
| 包 | 产物路径 | 构建工具 |
|---|---|---|
@stackpanel/api |
apps/api/dist/ |
tsup |
@stackpanel/web |
apps/web/.next/ |
Next.js (Turbopack) |
@stackpanel/sdk |
packages/sdk/dist/ |
tsc |
@stackpanel/spec |
packages/spec/dist/ |
tsc |
@stackpanel/ui |
packages/ui/dist/ |
tsc |
@stackpanel/db |
packages/db/dist/ + src/generated/prisma/
|
tsup + Prisma generate |
| 内置插件 | packages/plugins/*/dist/ |
esbuild (build-plugin.mjs) |
| 前端包 | packages/*/frontend/dist/ |
esbuild (build-frontend.mjs) |
pnpm typecheck # build:frontend + 全 workspace tsc --noEmit
pnpm lint # 全 workspace eslint
pnpm format:check # prettier 检查
pnpm format # prettier 自动格式化pnpm license:checkCI 门禁封禁 copyleft 协议(GPL/LGPL/AGPL/MPL/EPL/CDDL 及其 -or-later 变体)。唯一例外是 mariadb(LGPL-2.1),因为它是 Prisma MySQL 驱动的底层依赖,LGPL 允许链接使用而不传染 MIT 代码。
插件打包为可上传的 ZIP:
pnpm plugin:pack <plugin-name>打包与签名细节见 插件打包与签名。
核心开发
插件开发
主题开发
前端包开发
RESTful API