mcpField
U
umbraco-extension-template

umbraco-extension-template

github.com/umbraco开发27405 次安装6 周前更新
代码仓库

关于 umbraco-extension-template

指导开发者使用官方 .NET 模板搭建 Umbraco 后台扩展,预置 TypeScript/Vite 工具链和项目结构。还涵盖开发、构建、发布及示例代码的使用流程。

主要功能

  1. 01官方 .NET 扩展模板
  2. 02预配置 TypeScript/Vite
  3. 03可选示例代码
  4. 04开发与构建命令
  5. 05发布与 NuGet 打包说明

适用场景

  1. 01创建新的后台扩展项目
  2. 02为扩展添加示例 API 或仪表板
  3. 03构建并打包扩展

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-extension-template

安装后在 Claude Code 中输入/umbraco-extension-template确认已加载。

详细介绍

Umbraco 扩展模板

这是什么?

Umbraco 扩展模板是用于创建后台扩展的官方 .NET 模板。它提供预配置的项目结构、TypeScript/Vite 工具链、规范的文件夹结构,以及扩展开发所需的所有基本文件。每个 Umbraco 后台扩展都应以此模板为起点。

文档

实现前请务必获取最新文档:

先决条件

  • .NET SDK 10.0 或更高版本
  • Node.js 24 或更高版本

工作流

  1. 版本检查:首先调用 umbraco-version-guard,确认目标站点的 Umbraco 主版本与这些技能面向的主版本一致。若不一致,请停止。
  2. 安装模板(仅需一次):dotnet new install Umbraco.Templates
  3. 创建扩展:dotnet new umbraco-extension -n MyExtension
  4. 安装依赖项:cd MyExtension/Client && npm install
  5. 开始开发:npm run watch
  6. 生产环境构建:npm run build

命令

安装模板
dotnet new install Umbraco.Templates
创建新扩展(基本版)
dotnet new umbraco-extension -n MyExtension
创建新扩展(包含示例)
dotnet new umbraco-extension -n MyExtension -ex

-ex 标志会添加示例代码,包括:

  • 示例 API 控制器
  • Swagger API 注册
  • 示例仪表板组件
  • 生成的 API 客户端

项目结构

基本模板
MyExtension/
├── MyExtension.csproj        # .NET project file
├── Constants.cs              # Extension constants
├── README.md                 # Setup instructions
└── Client/                   # TypeScript source
    ├── package.json
    ├── tsconfig.json
    ├── vite.config.ts
    └── src/
        └── ...               # Your extension code
包含示例(-ex 标志)
MyExtension/
├── MyExtension.csproj
├── Constants.cs
├── README.md
├── Composers/                # C# composers
│   └── SwaggerComposer.cs    # API documentation setup
├── Controllers/              # C# API controllers
│   └── MyExtensionController.cs
└── Client/
    ├── package.json
    ├── tsconfig.json
    ├── vite.config.ts
    └── src/
        ├── api/              # Generated API client
        ├── dashboards/       # Example dashboard
        └── entrypoints/      # Extension entry point

开发命令

# Navigate to Client folder
cd MyExtension/Client

# Install dependencies
npm install

# Development with hot reload
npm run watch

# Production build
npm run build

# Type checking
npm run check

构建与部署

发布扩展
dotnet publish --configuration Release
创建 NuGet 包
dotnet pack --configuration Release

最小示例

运行模板后,在 Client/src/ 中添加第一个清单:

manifest.ts
export const manifests: Array<UmbExtensionManifest> = [
  {
    name: "My Extension Entrypoint",
    alias: "MyExtension.Entrypoint",
    type: "backofficeEntryPoint",
    js: () => import("./entrypoint.js"),
  },
];
entrypoint.ts
import type { UmbEntryPointOnInit } from "@umbraco-cms/backoffice/extension-api";

export const onInit: UmbEntryPointOnInit = (_host, _extensionRegistry) => {
  console.log("Extension loaded!");
};

重要:将扩展添加到 Umbraco 实例

创建新扩展后,必须将其添加为主 Umbraco 实例的项目引用。否则,扩展将无法加载。

参考技能:umbraco-add-extension-reference

此技能介绍如何将新扩展的 .csproj 文件作为 <ProjectReference> 添加到主 Umbraco 项目中(例如,Umbraco-CMS.Skills.csproj)。

相关技能

创建扩展后,可使用以下技能添加功能:

  • 区段:参考技能:umbraco-sections
  • 仪表板:参考技能:umbraco-dashboard
  • 菜单:参考技能:umbraco-menu
  • 工作区:参考技能:umbraco-workspace
  • 树:参考技能:umbraco-tree

如需包含可运行示例的完整扩展蓝图:

  • 参考技能:umbraco-backoffice

就是这样!务必获取最新文档,使用模板搭建项目,添加项目引用,然后按需添加扩展类型。

评论

支持 Markdown