Demo

module.metadata.json

Plugin တိုင်း မဖြစ်မနေ လိုအပ်သော identity ဖိုင် — plugins/<name>/module.metadata.json။ Core က discovery၊ versioning၊ base line နှင့် pluginDependencies load အစဉ်အတွက် အသုံးပြုပါသည်။

ခြုံငုံသုံးသပ်ချက်

Plugin root တွင် module.metadata.json ထားရှိရပါသည်။ Folder name၊ metadata.name နှင့် package identity တူညီရပါမည်။ available-plugins / installed-plugins သို့ ကူးယူပါသည်။

  • Path — plugins/<plugin-name>/module.metadata.json
  • @Module name၊ DI၊ install UI တွင် အသုံးပြုပါသည်
  • pluginDependencies က boot / register အစဉ်ကို ဆုံးဖြတ်ပါသည်

1. Fields

FieldTypeရည်ရွယ်ချက်
namestringUnique plugin id — folder နှင့် တူရပါမည်
typestringReserved (များသောအားဖြင့် "")
pluginVersionstringဤ plugin ၏ semver
descriptionstringModule / install UI အကျဉ်းချုပ်
moduleEntryObjectstringBackend entry export ("Module")
requiredBasedVersionstringကိုက်ညီသော core / @quan-erp/* line
pluginDependenciesobjectအခြား plugin → အရင် load ရမည့် semver range

2. ဥပမာ

inventory plugin metadata နမူနာကို အင်္ဂလိပ် code block တွင် ကြည့်နိုင်ပါသည်။

JSONplugins/inventory/module.metadata.json
1{ 2 "name": "inventory", 3 "type": "", 4 "pluginVersion": "1.0.0", 5 "description": "Inventory management system", 6 "moduleEntryObject": "Module", 7 "requiredBasedVersion": "1.0.0", 8 "pluginDependencies": { 9 "products": "^1.0.0", 10 "accounting": "^1.0.0" 11 } 12}

3. pluginDependencies

Key များသည် provider ၏ metadata.name ဖြစ်ပါသည်။ Value များသည် pluginVersion semver range ဖြစ်ပါသည်။ Provider များကို အရင် load လုပ်ပါသည်။

  • @Inject(Service, "other-plugin") သုံးပါက ထည့်ရပါသည်
  • {} = plugin dependency မရှိပါ
  • Provider version bump လုပ်ပါက range ကို sync လုပ်ရပါသည်
  • How it works / Export services ကို ကြည့်ပါ

စည်းမျဉ်းများ

  • name === plugins/ folder name ဖြစ်ရပါမည်
  • requiredBasedVersion ကို running core နှင့် ကိုက်အောင် ထားရပါသည်
  • import … with { type: "json" } ကို အသုံးပြုရပါသည်
  • Rename / bump ပြီးနောက် rebuild + re-install လုပ်ရပါသည်