|
|
il y a 8 heures | |
|---|---|---|
| .. | ||
| src | il y a 8 heures | |
| .gitignore | il y a 16 heures | |
| README.md | il y a 16 heures | |
| eslint.config.js | il y a 16 heures | |
| inbounds.html | il y a 16 heures | |
| index.html | il y a 16 heures | |
| login.html | il y a 16 heures | |
| nodes.html | il y a 16 heures | |
| package-lock.json | il y a 16 heures | |
| package.json | il y a 16 heures | |
| settings.html | il y a 16 heures | |
| subpage.html | il y a 16 heures | |
| vite.config.js | il y a 12 heures | |
| xray.html | il y a 16 heures | |
Vue 3 + Ant Design Vue 4 + Vite. Multi-page app — one HTML entry per
panel route — built into ../web/dist/ and embedded into the Go binary
via embed.FS.
npm install
npm run dev
Vite serves on http://localhost:5173/. API calls and /panel/* routes
proxy to the Go panel at http://localhost:2053/, so start the Go panel
first (go run main.go) and then Vite.
The proxy auto-rewrites /panel, /panel/settings, /panel/inbounds,
/panel/xray to the matching Vite-served HTML in dev mode (see
MIGRATED_ROUTES in vite.config.js), so the sidebar's
production-style links work without round-tripping through Go.
npm run build
Outputs to ../web/dist/ (HTML at the root, hashed JS/CSS under
assets/). The Go binary embeds this directory at compile time and
web/controller/dist.go serves the per-page HTML.
npm run lint
ESLint 10 with eslint.config.js (flat config) — vue3-recommended
plus a few rule overrides for the project's formatting style.
frontend/
├── *.html # Vite entry HTML, one per panel route
├── eslint.config.js
├── vite.config.js
└── src/
├── entries/ # Per-page bootstrap (createApp + mount)
├── pages/ # One folder per route, each with the page
│ ├── index/ # component + helpers + sub-components
│ ├── login/
│ ├── inbounds/
│ ├── xray/
│ ├── settings/
│ └── sub/
├── components/ # Cross-page Vue components
├── composables/ # Reusable reactive logic (useTheme, …)
├── api/ # Axios setup, CSRF interceptor
├── i18n/ # vue-i18n init (locales live in web/translation/)
├── models/ # Inbound, Outbound, Status, … domain classes
└── utils/ # HttpUtil, ObjectUtil, LanguageManager, …
frontend/<page>.html referencing /src/entries/<page>.js.src/entries/<page>.js that imports the page component and
mounts it.src/pages/<page>/.rollupOptions.input in vite.config.js./panel/<route>, add
it to MIGRATED_ROUTES so the dev proxy serves the Vite HTML.serveDistPage(c, "<page>.html").