用途:为 Umbraco 后台生成完整、可测试的示例扩展,并利用 Umbraco 源码的开发基础设施运行,适合创建演示扩展、构建可测试示例、快速热重载开发以及无需 .NET 后端即可测试扩展。
主要能力:支持内部示例(放在源码 examples/ 目录,用 npm run example 选择运行)和外部扩展(任意文件系统位置,通过绝对路径 VITE_EXAMPLE_PATH 加载)。外部模式用 VITE_UMBRACO_USE_MSW=on 模拟核心 API,绝对路径经 Vite 的 /@fs/ 前缀提供,index.ts 导出的 manifests 会被自动注册到 umbExtensionsRegistry。共享包解析器把 @umbraco-cms/backoffice、lit 和 @umbraco-ui/uui 映射到客户端副本,避免重复。
使用方式:先克隆源码并安装依赖:git clone https://github.com/umbraco/Umbraco-CMS,cd Umbraco-CMS/src/Umbraco.Web.UI.Client,npm install。扩展最小结构需包含 index.ts(必需,导出 manifests 数组)和元素文件。运行外部扩展:VITE_EXAMPLE_PATH=/absolute/path/to/my-extension VITE_UMBRACO_USE_MSW=on npm run dev,打开 http://localhost:5173。修改文件会触发热重载。
适用场景:演示扩展、包开发、无后端测试、单元测试(@open-wc/testing)与 E2E 测试(Playwright)。
限制:绝对路径支持需要带 external-example 支持的 v18 客户端;扩展未出现时需检查 index.ts 是否导出 manifests、路径是否为绝对路径、条件是否匹配当前 section;导入应使用 @umbraco-cms/backoffice/*;热重载仅监视 VITE_EXAMPLE_PATH 目录树内文件。具体收费、价格与平台信息暂未提供。