沙链是一个分层商业框架,让你在任意 Odoo 视图中构建 React 19 + Mantine 8 组件 — 无需 Shadow DOM hack, 不依赖 Enterprise,也不修改 Odoo 核心。
5,000+
自动化测试
88%
代码覆盖率
Odoo 16–19
版本支持
OPL-1
商业许可
ARCHITECTURE
Kernel 处理通用微前端基础设施,Bridge 处理 Odoo 集成,Addons 承载业务逻辑。层与层之间零渗透。
@shachain/react-micro-frontend不绑定具体宿主的微前端基础设施。React-to-Web-Component 引擎、Mantine 主题、i18n 引导、共享入口桩。完全不依赖 Odoo — 任何宿主都能跑。
@shachain/odoo-reactOdoo 集成层。OWL service 注入、跨版本 RPC 适配(16/17/18/19)、SystemJS importmap 引导、Per-Component MantineProvider 策略。
sc_react_* / odoo_react_*构建在 bridge 之上的业务 addon。每个都是独立的 System.register chunk,自带 vite.config.ts。JS 层 addon 之间零耦合。
DESIGN DECISIONS
Mantine 的 Portal(Modal / Drawer / Menu)直接渲染到 document.body。CSS 变量在所有 Odoo 版本中自然继承 — 无 workaround,无样式泄漏。
完全绕开 Odoo 自带的资源打包器。在 Odoo 16-19 上运行,不需要 Enterprise,不修改 Odoo 核心,不引入版本冲突。
5,000+ 自动化测试,88% 代码覆盖率。RED-GREEN-REFACTOR 工作流内置 — 每次提交都经过验证。Vitest + Playwright Component Tests。
一份代码同时支持 Odoo 16 / 17 / 18 / 19。RPC 与 ORM 的版本差异由 bridge 适配层统一处理 — 你的业务代码保持干净。
QUICK START
安装 bridge addon,用 defineAddon() 注册你的组件,然后在任意 Odoo 视图里写一个 Web Component 标签。无需 webpack,无需独立构建服务器,更不用 iframe。
// react/index.ts
import { defineAddon } from '@shachain/odoo-react';
import MyDashboard from './components/MyDashboard';
export default defineAddon({
specifier: 'my_addon',
components: {
'my-dashboard': MyDashboard,
}
});
<!-- In Odoo XML view -->
<my-dashboard
record-id="{{ record.id.value }}"
/>