mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
ae4eef53de
### Motivation - Provide a multi-tab dashboard layout so users can navigate between logical sections (Dashboard, Players, Graphics, Settings, About) via a persistent sidebar. - Integrate `vue-router` to manage in-app navigation inside the Quasar layout for a cleaner, scalable dashboard structure. ### Description - Added `vue-router` as a dev dependency and created `src/dashboard/example/router.ts` with routes for the five views (`/`, `/players`, `/graphics`, `/settings`, `/about`). - Replaced the example dashboard UI with a Quasar `QLayout` in `src/dashboard/example/main.vue` that includes a left `QDrawer` sidebar and a `RouterView` outlet, and wired the app to the router in `src/dashboard/example/main.ts`. - Added simple stub views for each tab under `src/dashboard/example/views/` (`Dashboard.vue`, `Players.vue`, `Graphics.vue`, `Settings.vue`, `About.vue`). - Adjusted `src/dashboard/template.html` to remove the default NodeCG body margin (`margin: 0`) so the layout can occupy the full panel area. ### Testing - Ran `npm install` which completed and added the new package with audit warnings about vulnerabilities reported. (succeeded) - Started the dev server with `npx vite` which reported the inputs and served the bundle at `http://localhost:4173/bundles/scoreko-dev/` and `vue-tsc` reported `Found 0 errors` while watching. (succeeded) - Attempted a Playwright screenshot run to capture the dashboard UI, but the Chromium process crashed (`TargetClosedError` / SIGSEGV) so no screenshot was produced. (failed) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_e_69876e97329c832a8af7179a9175d88b)
81 lines
2.2 KiB
JSON
81 lines
2.2 KiB
JSON
{
|
|
"name": "nodecg-vue-ts-template",
|
|
"version": "3.0.0",
|
|
"description": "Template for NodeCG bundles that use Vue.js and TypeScript.",
|
|
"homepage": "https://github.com/zoton2/nodecg-vue-ts-template#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/zoton2/nodecg-vue-ts-template/issues"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/zoton2/nodecg-vue-ts-template.git"
|
|
},
|
|
"license": "MIT",
|
|
"author": "zoton2",
|
|
"type": "module",
|
|
"scripts": {
|
|
"autofix": "eslint --fix",
|
|
"prebuild": "trash ./extension && trash ./node_modules/.vite && trash ./shared/dist && trash ./dashboard && trash ./graphics",
|
|
"build": "vite build && tsc -b tsconfig.extension.json",
|
|
"lint": "eslint",
|
|
"schema-types": "nodecg schema-types",
|
|
"start": "cd ../.. && node index.js",
|
|
"watch": "conc -n B,E -c red,blue -k vite \"tsc -b -w --preserveWatchOutput tsconfig.extension.json\""
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.0",
|
|
"@quasar/extras": "^1.17.0",
|
|
"@quasar/vite-plugin": "^1.10.0",
|
|
"@tsconfig/node22": "^22.0.2",
|
|
"@types/node": "^22.18.13",
|
|
"@unhead/vue": "^2.0.19",
|
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
"@vue/tsconfig": "^0.8.1",
|
|
"concurrently": "^9.2.1",
|
|
"eslint": "^9.39.0",
|
|
"eslint-plugin-vue": "^10.5.1",
|
|
"nodecg": "^2.6.1",
|
|
"nodecg-vue-composable": "^1.1.0",
|
|
"quasar": "^2.18.5",
|
|
"sass-embedded": "^1.93.3",
|
|
"trash-cli": "^7.0.0",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.46.2",
|
|
"vite": "^7.1.12",
|
|
"vite-plugin-checker": "^0.11.0",
|
|
"vite-plugin-nodecg": "^2.1.0",
|
|
"vue": "^3.5.22",
|
|
"vue-router": "^4.5.0",
|
|
"vue-tsc": "^3.1.2"
|
|
},
|
|
"pnpm": {
|
|
"overrides": {
|
|
"vite-plugin-nodecg>vite": "$vite"
|
|
}
|
|
},
|
|
"nodecg": {
|
|
"compatibleRange": "^2.3.0",
|
|
"dashboardPanels": [
|
|
{
|
|
"name": "example",
|
|
"title": "Example",
|
|
"file": "example/main.html",
|
|
"width": 3
|
|
}
|
|
],
|
|
"graphics": [
|
|
{
|
|
"file": "example/main.html",
|
|
"width": 1920,
|
|
"height": 1080
|
|
}
|
|
]
|
|
},
|
|
"overrides": {
|
|
"vite-plugin-nodecg": {
|
|
"vite": "$vite"
|
|
}
|
|
}
|
|
}
|