用途:这是一套双版本模块迁移规范,适用于同一模块需同时存在于开源版与企业版、用户提及 src/opensource、enterprise/、Vite overlay 或版本特有行为,或需要删除旧 src/variant/... 门面并保留 src/opensource 导入边界的场景。
核心不变量:src/opensource 是共享唯一来源,不得导入商业代码或 keewoodClient、teamshareClient 等私有基础设施;enterprise 是覆盖层而非第二个应用,企业文件应与共享文件保持相同相对路径,运行时解析优先 enterprise/ 再 src/,且尽量保持轻薄,优先使用再导出门面。开源调用方应直接导入 @/opensource/...,不要保留 @/variant/...;若企业版需不同行为,在 enterprise/src/opensource/... 添加覆盖文件。
主要模式:A 共享基线加企业覆盖,用于 hook、service、helper 等非可视模块;B 组件覆盖,在 ComponentRender 默认组件注册基础上做企业版替换;B.5 共享门面加企业子件覆盖,仅抽出真正变化的小块;C 临时企业垫片,仅作短期过渡;D 企业专属依赖闭包,整条链迁入 enterprise;E 企业专属模块加开源桩,桩需与接口完全一致并返回空数组、false、空回调、null 等安全值;F 可选运行时门面,仅在直接导入加覆盖不足时使用。
迁移流程:迁移前用 rg 查找全部导入方,先确定最终逻辑路径与最小覆盖面,将共享基线保留在 src/opensource 并把内部导入改写为 @/opensource/...,用镜像路径保留企业差异,替换并删除 variant,最后验证边界与兼容性,包括定向 lint、聚焦测试与构建验证。
限制与常见陷阱:不得让 src/opensource 导入商业或私有模块;覆盖存在后不应保留 variant 造成死间接;不要遗漏 preload helper 与工具导入;避免整份复制企业代码导致分叉。资料未提供具体安装命令、收费、价格或平台信息。