AgentSkillsCN

xeku-generator

執行 XekuII 代碼生成器的完整流程。當需要清除舊生成檔、重新生成 BO/API/前端、驗證與更新資料庫時使用。

中文原作
SKILL.md
--- frontmatter
name: xeku-generator
description: 執行 XekuII 代碼生成器的完整流程。當需要清除舊生成檔、重新生成 BO/API/前端、驗證與更新資料庫時使用。

XekuII 代碼生成

Overview

entities/*.xeku.yaml 生成後端 Business Objects、API Controllers 與前端產物,並驗證與更新資料庫。

Preflight

powershell
# .NET SDK
 dotnet --version

# 確認 entities
Get-ChildItem -Path entities -Filter "*.xeku.yaml" -Recurse

Cleanup Old Outputs

powershell
Remove-Item -Path "XekuII.ApiHost/BusinessObjects/*.Generated.cs" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "XekuII.ApiHost/API/*Controller.Generated.cs" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/types/*.generated.ts" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/schemas/*.generated.ts" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/api/*.generated.ts" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/pages" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/routes.generated.tsx" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "xekuii-web/src/generated/navigation.generated.ts" -Force -ErrorAction SilentlyContinue

Generate

使用 XekuII.Generator(推薦)

powershell
# BO + API Controller
dotnet run --project XekuII.Generator -- ./entities `
  --output ./XekuII.ApiHost/BusinessObjects `
  --controllers ./XekuII.ApiHost/API

# BO + API + 前端
dotnet run --project XekuII.Generator -- ./entities `
  --output ./XekuII.ApiHost/BusinessObjects `
  --controllers ./XekuII.ApiHost/API `
  --frontend ./xekuii-web/src/generated

使用 XekuII.CLI

powershell
XekuII.CLI generate --entities=./entities `
  --output=./XekuII.ApiHost/BusinessObjects `
  --api --api-output=./XekuII.ApiHost/API

Validate

powershell
Get-ChildItem -Path "XekuII.ApiHost/BusinessObjects" -Filter "*.Generated.cs"
Get-ChildItem -Path "XekuII.ApiHost/API" -Filter "*Controller.Generated.cs"
Get-ChildItem -Path "xekuii-web/src/generated" -Recurse -Filter "*.generated.*"

dotnet build XekuII.ApiHost/XekuII.ApiHost.csproj
cd xekuii-web && npm run build && cd ..

Update Database

powershell
dotnet run --project XekuII.ApiHost/XekuII.ApiHost.csproj `
  -- --updateDatabase --forceUpdate --silent

Troubleshooting

  • Entities directory not found:確認 entities 路徑與 .xeku.yaml
  • 建置錯誤:檢查 referenced entity 是否存在。
  • Controller 路由衝突:避免與手寫 Controller 重複。
  • 資料庫更新失敗:嘗試 --forceUpdate 或重建 LocalDB。
  • 命名空間不符:加上 --namespace