ပန်းတိုင်
plugins/ အောက်တွင် တည်ဆောက် / ထည့်သွင်း / menu·route မှတ်ပုံတင်နိုင်သော plugin folder တစ်ခု ရရှိရန် ဖြစ်ပါသည်။
- Folder တစ်ခု — module.metadata.json + backend/ + frontend/
- Folder အမည် === metadata.name === package identity
- available-plugins → Install ပြီးနောက် installed-plugins
1. လိုအပ်ချက်များ
Scaffold မလုပ်မီ Quark ERP project နှင့် လည်ပတ်နေသော base stack လိုအပ်ပါသည်။
- quan-erp new-project ဖြင့် project ဖန်တီးပြီးသား ဖြစ်ရပါမည်
- @quan-erp/cli — npm i -g @quan-erp/cli
- Base — quan-erp base:dev
- Node.js 18+ (20+ LTS ကို အကြံပြုပါသည်)
- kebab-case အမည် ရွေးချယ်ပါ (ဥပမာ fleet-management)
quan-erp help
quan-erp base:dev # if base is not already up2. Plugin scaffold
ဗလာ plugin အတွက် CLI ကို အသုံးပြုပါ။ Menu / page / API ပုံစံ လိုအပ်ပါက sample-es ကို ကူးယူပါ။
- quan-erp new / new-plugin — greenfield အတွက် သင့်လျော်ပါသည်
- sample-es — IPlugin / register / api / page အကိုးအကား
- Layout — backend/ + frontend/ + module.metadata.json ထားရှိရပါမည်
1# From project root
2quan-erp new
3# or: quan-erp new-plugin
4# optional: quan-erp new-plugin --version latest
5# Prompts: name, description, module entry object, version
6# Creates plugins/<name>/{backend,frontend,module.metadata.json}cp -R plugins/sample-es plugins/my-plugin
# Then rename packages + metadata.name (next section)3. အမည်များ ကိုက်ညီအောင် ညှိခြင်း (အရေးကြီး)
ဤ string များ မတူညီပါက watch / install / DI အမှားများ ဖြစ်နိုင်ပါသည်။ Scaffold ပြီးတိုင်း စစ်ဆေးရပါမည်။
- name — API prefix / menu / @Inject အတွက် ထူးခြားသော id
- pluginVersion — available-plugins/<name>/<version>/
- requiredBasedVersion — base / @quan-erp/* နှင့် ကိုက်ညီရပါမည်
- moduleEntryObject — root @Module class အမည်
- pluginDependencies — အရင် load ရမည့် plugin များ
1plugins/<name>/ # folder
2module.metadata.json → "name": "<name>"
3backend/package.json → "@quan-erp-plugins/<name>-backend"
4frontend/package.json → "@quan-erp-plugins/<name>-frontend"
5@Module({ name: metadata.name, ... }) # backend root module1{
2 "name": "my-plugin",
3 "type": "",
4 "pluginVersion": "1.0.0",
5 "description": "My first plugin",
6 "moduleEntryObject": "Module",
7 "requiredBasedVersion": "1.0.0",
8 "pluginDependencies": {}
9}4. @quan-erp/* ဗားရှင်း ကိုက်ညီအောင် ညှိခြင်း
Backend နှင့် frontend ၏ @quan-erp/* မှီခိုမှုများသည် base image / BASE_VERSION နှင့် တူညီရပါမည်။
- sample-es သို့မဟုတ် အလုပ်လုပ်နေသော plugin မှ ဗားရှင်း pin ကို ကူးယူပါ
- ဗားရှင်း ပြောင်းလဲပြီးနောက် backend / frontend တွင် npm install လုပ်ပါ
- မှီခိုမှု ပြောင်းလဲပြီးနောက် quan-erp watch ကို run ပါ
cd plugins/my-plugin/backend && npm install
cd ../frontend && npm install
cd ../../.. # back to project root5. ပထမဆုံး feature ထည့်သွင်းခြင်း
ပထမ ပြောင်းလဲမှုကို သေးငယ်အောင် ထားရှိပါ — backend တွင် entity + service + controller တစ်ခု၊ frontend တွင် page + api hook + menu/route တို့ ဖြစ်ပါသည်။
- Backend — IPlugin၊ feature folder၊ entity၊ root @Module
- Frontend — register(AppRegistry): Axios၊ menu.add၊ route.add
- API — React Query hooks; page များသည် hook သာ import လုပ်ရပါမည်
- Table / HTTP path ကို plugin အမည်ဖြင့် namespace လုပ်ရပါမည်
- အခြား plugin ၏ src/ ကို import မလုပ်ရပါ
6. quan-erp watch ဖြင့် တည်ဆောက်ခြင်း
Project root မှ watch က backend + frontend ကို base/available-plugins/<name>/<version>/ သို့ compile လုပ်ပါသည်။
- Argument သည် plugins/ အောက်ရှိ folder အမည် ဖြစ်ပါသည်
- available-plugins တွင် backend/ frontend/ metadata ရှိမရှိ စစ်ဆေးပါ
- Install ပြီးသား ဖြစ်ပါက watch က installed မိတ္တူကိုလည်း refresh လုပ်ပါသည်
quan-erp watch my-plugin
# one-shot production build
quan-erp build:prod my-plugin7. ERP UI မှ Install
Watch က available-plugins သို့သာ ထားရှိပါသည်။ Shell က installed-plugins ကို တင်သွင်းပါသည်။
- Modules UI မှ Install လုပ်ပါ
- installed-plugins/<name>/ ရှိမရှိ စစ်ဆေးပါ
- Browser ကို hard-refresh လုပ်ပြီး menu/route ကို စစ်ဆေးပါ
- မပေါ်ပါက Troubleshooting → frontend not loaded ကို ကြည့်ပါ