关于 experience-lwc-generate
面向 Salesforce Lightning Web Components 开发的技能,适用于构建组件、集成数据源及完善前端质量。提供组件模式与模板,并涵盖 SLDS 2、无障碍、性能和 Jest 测试。
主要功能
- 01搭建 Lightning Web Components 组件
- 02集成 LDS、Apex、GraphQL 与 LMS
- 03使用 SLDS 2 并处理深色模式
- 04检查无障碍性和渲染性能
- 05编写 Jest 单元测试
- 06本地预览组件并热重载
适用场景
- 01构建 Salesforce 记录界面或表单
- 02制作 Flow 屏幕组件
- 03为组件添加 GraphQL 或消息服务
- 04验证组件的无障碍性与 Jest 测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill experience-lwc-generate安装后在 Claude Code 中输入/experience-lwc-generate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/apex-controller/LwcController.clsassets/basic-component/basicComponent.cssbasicComponent.htmlbasicComponent.jsbasicComponent.js-meta.xmlassets/datatable-component/datatableComponent.htmldatatableComponent.jsassets/flow-screen-component/flowScreenComponent.cssflowScreenComponent.htmlflowScreenComponent.jsflowScreenComponent.js-meta.xmlassets/form-component/formComponent.htmlformComponent.jsassets/graphql-component/graphqlComponent.htmlgraphqlComponent.jsassets/jest-test/componentName.test.js.exampleassets/message-channel/lmsPublisher.jslmsSubscriber.jsRecordSelected.messageChannel-meta.xmlassets/modal-component/modalComponent.htmlmodalComponent.jsassets/record-picker/recordPicker.htmlrecordPicker.jsassets/state-store/store.jsassets/typescript-component/typescriptComponent.csstypescriptComponent.htmltypescriptComponent.js-meta.xmltypescriptComponent.test.ts.exampletypescriptComponent.tsassets/workspace-api/workspaceComponent.html详细介绍
experience-lwc-generate:Lightning Web Components 开发
当用户需要 Lightning Web Components 时使用此技能:LWC bundle、wire 模式、Apex/GraphQL 集成、SLDS 2 样式、无障碍支持、性能优化或 Jest 单元测试。
此技能负责的任务
当工作涉及以下内容时,使用 experience-lwc-generate:
lwc/**/*.js、.html、.css、.js-meta.xml- 组件脚手架搭建和 bundle 设计
- wire 服务、Apex 集成、GraphQL 集成
- SLDS 2、深色模式和无障碍支持
- LWC 的 Jest 单元测试
以下情况应委派给其他技能:
- 优先编写 Apex 控制器或业务逻辑 → platform-apex-generate
- 构建 Flow XML,而不是 LWC 屏幕组件 → automation-flow-generate
- 部署元数据 → platform-metadata-deploy
首先需要收集的上下文
询问或推断:
- 组件的用途和目标界面
- 数据源:LDS、Apex、GraphQL、LMS,或通过 Apex 连接的外部系统
- 用户是否需要测试
- 组件是否必须在 Flow、App Builder、Experience Cloud 或仪表板环境中运行
- 无障碍和样式方面的预期
推荐工作流
1. 选择合适的架构
采用 PICKLES 思路:
- 构建原型
- 集成合适的数据源
- 组合组件边界
- 定义交互模型
- 使用平台库
- 优化执行
- 强制实施安全措施
2. 选择合适的数据访问模式
| 需求 | 默认模式 |
|---|---|
| 单记录 UI | LDS / getRecord |
| 简单 CRUD 表单 | 基础记录表单组件 |
| 复杂服务端查询 | Apex @AuraEnabled(cacheable=true) |
| 相关图数据 | GraphQL wire adapter |
| 跨 DOM 通信 | Lightning Message Service |
3. 适用时从资源开始
使用提供的资源来构建:
- 基础组件 bundle
- 数据表
- 模态框模式
- Flow 屏幕组件
- GraphQL 组件
- LMS 消息通道
- Jest 测试
- 启用 TypeScript 的组件
4. 验证前端质量
检查:
- 无障碍支持
- 是否符合 SLDS 2 / 深色模式规范
- 事件约定
- 性能 / 重新渲染安全性
- 所需的 Jest 覆盖率
5. 移交辅助后端或部署工作
使用:
- platform-apex-generate 编写控制器 / 服务
- platform-metadata-deploy 进行部署
- platform-apex-test-run 仅用于 Apex 端测试循环,不适用于 Jest
高优先级规则
- 优先使用平台基础组件,不要重复造控件
- 对响应式只读用例使用
@wire;对明确的操作和 DML 路径使用命令式调用 - 不要引入不具备无障碍支持的自定义 UI
- 避免硬编码颜色;使用兼容 SLDS 2 的样式钩子 / 变量
- 避免在
renderedCallback()中造成重新渲染循环 - 组件通信模式应明确且精简
输出格式
完成时,按以下顺序报告:
- 创建或更新的组件
- 选择的数据访问模式
- 更改的文件
- 无障碍 / 样式 / 测试说明
- 下一步实现或部署步骤
建议格式:
LWC work: <summary>
Pattern: <wire / apex / graphql / lms / flow-screen>
Files: <paths>
Quality: <a11y, SLDS2, dark mode, Jest>
Next step: <deploy, add controller, or run tests>
本地开发服务器
使用热重载在本地预览 LWC 组件,无需部署。运行 scripts/local-dev-preview.sh 中的命令,为组件、应用或 Experience Cloud 站点启动本地开发会话。
Local Dev 命令会在首次运行时按需安装。这些命令会启动长期运行的进程,并在浏览器中打开实时预览。对 .js、.html 和 .css 文件的更改会立即自动重新加载。数据和 Apex 调用需要有效的 org 连接。
跨技能集成
| 需求 | 委派给 | 原因 |
|---|---|---|
| Apex 控制器或服务 | platform-apex-generate | 后端逻辑 |
| 嵌入 Flow 屏幕 | automation-flow-generate | 声明式编排 |
| 部署组件包 | platform-metadata-deploy | 组织部署 |
| 创建支持性元数据(消息通道、对象) | platform-metadata-deploy | 元数据部署 |
参考文件索引
从这里开始
- references/component-patterns.md — 组件架构模式和组件包设计
- references/slds-design-guide.md — SLDS 2 样式、深色模式、CSS 钩子
- references/lwc-best-practices.md — 高价值规则和反模式
- references/scoring-and-testing.md — 涵盖 8 个类别的 165 分评分标准
- references/jest-testing.md — Jest 单元测试模式和异步渲染辅助工具
- references/slds-blueprints.json — 机器可读的 SLDS 组件蓝图
- references/cli-commands.md — LWC 开发的 SF CLI 命令
无障碍 / 性能 / 状态
- references/accessibility-guide.md — WCAG、ARIA、键盘导航模式
- references/performance-guide.md — 延迟加载、防抖、重新渲染安全性
- references/state-management.md — 响应式状态模式和 LMS
- references/template-anti-patterns.md — 应避免的常见 HTML 模板错误
集成 / 高级功能
- references/lms-guide.md — Lightning Message Service 模式
- references/flow-integration-guide.md — Flow 屏幕组件设计
- references/advanced-features.md — Spring '26 功能:TypeScript、lwc:on、GraphQL mutations
- references/async-notification-patterns.md — toast、通知、异步流程
- references/triangle-pattern.md — 父子同级通信三角模式
资源模板
- assets/basic-component/basicComponent.js — 连接服务、错误和加载状态、事件分发
- assets/datatable-component/datatableComponent.js — 带内联编辑的数据表
- assets/flow-screen-component/flowScreenComponent.js — 带输入/输出属性的 Flow 屏幕
- assets/form-component/formComponent.js — 表单验证和 DML 模式
- assets/graphql-component/graphqlComponent.js — 使用基于游标的分页的 GraphQL wire 适配器
- assets/jest-test/componentName.test.js.example — Jest 测试模板(复制并重命名,移除
.example后缀) - assets/message-channel/lmsPublisher.js — LMS 发布者模式
- assets/message-channel/lmsSubscriber.js — LMS 订阅者模式
- assets/modal-component/modalComponent.js — 带焦点陷阱和 ESC 处理的模态框
- assets/record-picker/recordPicker.js — 带搜索功能的记录选择器
- assets/state-store/store.js — 用于跨组件状态的响应式状态存储
- assets/typescript-component/typescriptComponent.ts — 支持 TypeScript 的组件(Spring '26)
- assets/workspace-api/workspaceComponent.js — 用于标签页和焦点管理的工作区 API
- assets/apex-controller/LwcController.cls — 包含
@AuraEnabled(cacheable=true)模式的 Apex 控制器
脚本
- scripts/local-dev-preview.sh — 用于预览组件、应用和站点的本地开发服务器命令
评分指南
| 分数 | 含义 |
|---|---|
| 150+ | 可用于生产环境的 LWC 包 |
| 125–149 | 出色的组件,仅需少量润色 |
| 100–124 | 功能可用,但建议审核 |
| < 100 | 需要大幅改进 |
评论
支持 Markdown