该技能面向正在迁移 Salesforce 旧版 UI 的开发者,包含两条独立但常同时出现的工作流。
用途一:Aura 转 LWC 完备性核查。适用于 Aura 组件已转换为 LWC、需要结构化确认没有遗漏的场景。流程为:先确认组件名并定位 Aura 源文件(.cmp、controller、helper、CSS)与 LWC 产物(.html、.js、.css、.js-meta.xml);再按 aura-to-lwc-completeness-checklist.md 对 12 个维度打分(功能一致性、事件处理、数据绑定与状态、UI/UX 一致性、可扩展性与模块化、错误处理、本地化、安全与访问控制、性能、Salesforce 最佳实践、Jest 测试覆盖、UTAM Page Object),评分等级为 Excellent / Good / Satisfactory / Limited / Poor / Missing,输出用列表而非表格;最后给出总体信心判断与按优先级排列的改进建议。需要能访问转换后的 LWC,含 tests(Jest)与 utam(UTAM)目录(如存在)。若 UTAM 或 Jest 缺失,可能因团队有替代测试策略而可接受,应在建议中标注而非直接阻断。
用途二:Lightning Out Beta 到 Lightning Out 2.0 宿主页迁移。适用于非 Salesforce 宿主页通过 Lightning Out Beta 嵌入 LWC、需要迁移到 LO 2.0 的场景,也适用于把 $Lightning.use() / $Lightning.createComponent() 升级为 <lightning-out-application> Web Component,并用 OAuth PKCE + front-door 流程替换硬编码 LO 令牌。核心认知是 LO 2.0 不是库升级:LWC 运行在封闭 shadow DOM 的 iframe 中,宿主页 JS 与 LWC 互不可访问,宿主页 CSS 不会级联进入。迁移步骤包括:识别 Beta 模式(脚本标签、配置变量、$Lightning.use、$Lightning.createComponent、DOM 目标元素);用脚本确定脚本标签 URL、组件标签名与属性名,例如 python3 scripts/convert-lo-names.py --component c:myComponent --attributes recordId,ownerId --my-domain https://<DOMAIN>.lightning.force.com;替换脚本标签并加 async;用 c-… 标签直接放入 HTML;删除 $Lightning 块并以 assets/lo20-host-page-template.html 为起点填写配置常量。
六条不可违反规则(违反会导致静默运行时失败):customElements.whenDefined(...) 必须接收字面字符串而非 components 变量;mountLo20(frontdoorUrl, orgUrl) 必须接收两个参数;每次 mountLo20(...) 前调用 clearCachedResult();调用 mountLo20(...) 时始终传入两个参数,即使 orgUrl 为 undefined;所有初始化包在 boot() 中并在末尾调用 boot();组件标签不得内联 display:none,可见性由加载指示器控制。用 python3 scripts/validate-lo20-page.py <migrated-page.html> 逐条验证并修复所有 FAIL。
Salesforce 侧配置:在 Setup → App Manager → New Connected App → External Client App 创建 ECA 并启用带 PKCE 的 OAuth,复制 Consumer Key;若宿主页设置 app-id="...",则 Setup → Lightning Out → New LO App 并复制 18 位 App ID,若宿主页直接嵌入 LWC 则跳过 LO App。迁移假定宿主页旁存在 frontdoor-url.html(OAuth 回调)与 utils/LightningOutAuth.js(PKCE 实现)。
限制与排错:LO 2.0 挂载卡住通常是自定义元素未注册,检查库脚本标签 URL 与 app-id / frontdoor-url;组件空白通常是属性仍为 camelCase,必须改为 kebab-case;OAuth 回调未触发通常是 postMessage、BroadcastChannel、storage 三个监听器有缺失,LO 2.0 三者都需要。若要从零新建 LO 2.0 宿主页,可参考技能内的 LO 2.0 系统参考文档。其余未在资料中说明的平台、收费或效果信息暂未提供。