@done-coding/forge-core
配置化前端底座,提供 bridge、共享契约、注入键、路由、状态、工具和基础组件。
应用统一消费 @done-coding/forge;本包的公开桶供实现包组合,入口以 package.json 的 exports 为准。
安装与使用
pnpm add @done-coding/forge
import { createCoreBridge, ActionBtn } from "@done-coding/forge";
import "@done-coding/forge/style.css";
直接消费实现包时,改用本包入口及对应的 style.css;应用统一使用上述聚合入口。
消费边界
ModalShelfMap 由 forge-core 定义,应用通过 declare module "@done-coding/forge" { interface ModalShelfMap { /* 业务键 */ } } 增广,约束 ModalPorter 与 ModalShelf。共享注入键沿用历史 @done-coding/admin-core namespace,保持 Symbol.for 身份。
本包不依赖上层组件;internals 为包间实现契约,应用聚合不转出。需要 Pinia 2;本包不使用或注册 persistedstate,应用自定义持久化 store 时自行选择兼容插件。
宿主须满足以下 peer 要求:
| 包 | 范围 |
|---|---|
@done-coding/request-axios | ^0.0.2 |
@element-plus/icons-vue | ^2.3.1 |
element-plus | ^2.7.0 |
lodash | ^4.17.21 |
pinia | ^2.1.7 |
vue | ^3.4.0 |
vue-router | ^4.3.0 |
文档与完整 API:使用文档。
MIT,Copyright (c) JustSoSu。完整许可见本包 LICENSE。
目录导航
src/components/{basic,config,data,feedback,other}/:底座组件,含配套测试与 API 文档。src/{bridge,config,helpers,hooks,inject,router,store,types,utils}/:底座实现与共享契约。src/internals/:包间实现契约桶,应用根不转出。src/injection-namespace.ts:固定历史注入身份。vite.config.ts:全部公开桶入口的 ESM/声明构建。
登录守卫与外部登录
createGuard 检测到未登录时固定跳 loginPath 并带 from query;接口 401 经 bridge.goToLogin 走同一登录页。外部 IdP(如 OIDC signinRedirect、iframe 登录)由登录页自行发起,回调参数与 from 回跳也在登录页(或其回调路由)收拢;登录页与回调路由需列入免登录校验路由。forge 不提供守卫级外跳钩子,以免守卫与 goToLogin 两个入口行为分叉。
导出列协议 ExportColumn 的 label 来自 Element Plus 根入口 TableColumnCtx,不从组件构造器反推 props;列渲染与导出行为不变。