umbraco-bundle について
umbraco-bundle は、Umbraco バックオフィス拡張の Bundle 作成を支援するスキルです。最新ドキュメントの確認から、マニフェストと JavaScript または TypeScript ファイルの生成まで案内します。
主な機能
- 01複数の拡張マニフェストを Bundle に集約
- 02JavaScript と TypeScript のマニフェストに対応
- 03複数ファイルからマニフェストを再エクスポート
- 04ドキュメント確認とコード生成を案内
活用シーン
- 01関連するバックオフィス拡張の整理
- 02Bundle とパッケージマニフェストの生成
- 03機能ごとのマニフェストファイル分割
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-bundleインストール後、Claude Code で/umbraco-bundleを入力して読み込まれたか確認します。
詳細
Umbraco Bundle
これは何ですか?
Bundle は、JavaScript/TypeScript で記述された拡張機能マニフェストをエクスポートまたは再エクスポートする単一の JavaScript ファイルを指す拡張機能タイプです。複数の拡張機能マニフェストをまとめてグループ化するためのコンテナとして機能し、マニフェストを JSON ではなくコードで宣言したり、拡張機能をモジュール形式で整理したりすることができます。
ドキュメント
実装する前に、常に最新のドキュメントを取得してください:
- メインドキュメント: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/bundle
- Foundation: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- Extension Registry: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
ワークフロー
- ドキュメントを取得 - 上記の URL に対して WebFetch を使用します
- 質問する - どの拡張機能をバンドルしますか?TypeScript それとも JavaScript ですか?
- ファイルを生成 - 最新のドキュメントに基づいてマニフェスト + バンドルファイルを作成します
- 説明 - 何が作成されたか、そしてどのようにテストするかを示します
最小限の例
マニフェスト (umbraco-package.json)
{
"name": "My Package",
"version": "1.0.0",
"extensions": [
{
"type": "bundle",
"alias": "My.Package.Bundle",
"name": "My Package Bundle",
"js": "/App_Plugins/MyPackage/manifests.js"
}
]
}
バンドルファイル (manifests.ts)
import type { UmbExtensionManifest } from '@umbraco-cms/backoffice/extension-api';
export const manifests: Array<UmbExtensionManifest> = [
{
type: 'dashboard',
name: 'My Dashboard',
alias: 'My.Dashboard',
element: () => import('./dashboard.js'),
weight: 900,
meta: {
label: 'My Dashboard',
pathname: 'my-dashboard',
},
conditions: [
{
alias: 'Umb.Condition.SectionAlias',
match: 'Umb.Section.Content',
},
],
},
{
type: 'headerApp',
name: 'My Header App',
alias: 'My.HeaderApp',
element: () => import('./header-app.js'),
meta: {
label: 'My App',
icon: 'icon-heart',
},
},
];
複数のファイルからの再エクスポート
// manifests.ts
export * from './dashboards/manifests.js';
export * from './header-apps/manifests.js';
export * from './sections/manifests.js';
以上です!常に最新のドキュメントを取得し、例は最小限に保ち、完全に動作するコードを生成してください。
コメント
Markdown 対応