关于 umbraco-entry-point
用于构建 Umbraco Backoffice Entry Point 的技能,指导开发者查阅最新文档、确认初始化需求,并生成清单和 JavaScript 入口点。
主要功能
- 01获取最新 Umbraco 文档
- 02确认初始化与清理需求
- 03生成清单和入口点
- 04说明测试步骤
适用场景
- 01用户登录后初始化 Umbraco 包
- 02加载外部库或全局 CSS
- 03动态注册 UI 扩展
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-entry-point安装后在 Claude Code 中输入/umbraco-entry-point确认已加载。
详细介绍
Umbraco 入口点
什么是入口点?
入口点是一种扩展,会在 Umbraco 后台启动时执行 JavaScript 代码。后台入口点会在用户身份验证后运行,用于执行初始化逻辑、加载外部库、动态注册 UI 扩展或引入全局 CSS。可选的 onUnload 函数用于处理清理工作。
文档
实现前务必获取最新文档:
- 主要文档:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/backoffice-entry-point
- 基础知识:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- 扩展注册表:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
工作流
- 获取文档 - 对上述 URL 使用 WebFetch
- 提出问题 - 需要哪些初始化操作?是否需要外部库?是否需要清理工作?
- 生成文件 - 根据最新文档创建清单文件和入口点
- 说明 - 展示创建的内容以及测试方法
最简示例
清单文件(umbraco-package.json)
{
"name": "My Package",
"extensions": [
{
"type": "backofficeEntryPoint",
"alias": "My.EntryPoint",
"name": "My Entry Point",
"js": "/App_Plugins/MyPackage/index.js"
}
]
}
实现(index.ts)
import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api';
export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => {
console.log('My package initialized');
// Register extensions dynamically
extensionRegistry.register({
type: 'dashboard',
alias: 'My.Dashboard',
name: 'My Dashboard',
element: () => import('./dashboard.js'),
meta: {
label: 'My Dashboard',
pathname: 'my-dashboard'
}
});
};
// Optional cleanup
export const onUnload = () => {
console.log('My package unloaded');
};
就是这样!务必获取最新文档,保持示例简洁,并生成完整可运行的代码。
评论
支持 Markdown