diff --git a/.firebaserc b/firebase/.firebaserc similarity index 100% rename from .firebaserc rename to firebase/.firebaserc diff --git a/firebase.json b/firebase/firebase.json similarity index 100% rename from firebase.json rename to firebase/firebase.json diff --git a/firestore.indexes.json b/firebase/firestore.indexes.json similarity index 100% rename from firestore.indexes.json rename to firebase/firestore.indexes.json diff --git a/firestore.rules b/firebase/firestore.rules similarity index 100% rename from firestore.rules rename to firebase/firestore.rules diff --git a/package.json b/package.json index 963d031..b1a3b1c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mnswpr", "version": "0.0.1", "private": true, - "description": "mnswpr — the mnswpr.com web app", + "description": "mnswpr \u2014 the mnswpr.com web app", "author": "Ayo Ayco", "type": "module", "main": "main.js", @@ -12,16 +12,16 @@ }, "homepage": "https://mnswpr.com", "scripts": { - "dev": "firebase emulators:exec --only firestore --ui \"node scripts/seed-dev-scores.js; vite\"", + "dev": "firebase --config firebase/firebase.json emulators:exec --only firestore --ui \"node scripts/seed-dev-scores.js; vite\"", "dev:no-db": "vite", "build": "vite build", "preview": "vite preview", "build:preview": "pnpm run build && pnpm run preview", "test": "vitest run", "test:watch": "vitest", - "deploy:db": "firebase deploy --only firestore", + "deploy:db": "firebase --config firebase/firebase.json deploy --only firestore", "deploy:site": "pnpm run build && netlify deploy --prod --dir=dist", - "db:start": "firebase emulators:start --only firestore", + "db:start": "firebase --config firebase/firebase.json emulators:start --only firestore", "db:seed": "FIRESTORE_EMULATOR_HOST=127.0.0.1:8080 node scripts/seed-dev-scores.js", "db:stop": "pkill -f '[c]loud-firestore-emulator'; pkill -f '[f]irebase.* emulators:'; true", "release": "pnpm lint && pnpm test && bumpp && node scripts/release.js", diff --git a/scripts/export-legends.js b/scripts/export-legends.js index b610ac6..7b7ff93 100644 --- a/scripts/export-legends.js +++ b/scripts/export-legends.js @@ -130,6 +130,6 @@ ${sections.join('\n')} ` const __dirname = dirname(fileURLToPath(import.meta.url)) -const out = resolve(__dirname, '../legends.html') +const out = resolve(__dirname, '../src/legends.html') writeFileSync(out, html) console.log(`\nWrote ${out}`) diff --git a/index.html b/src/index.html similarity index 100% rename from index.html rename to src/index.html diff --git a/legends.html b/src/legends.html similarity index 100% rename from legends.html rename to src/legends.html diff --git a/main.css b/src/main.css similarity index 100% rename from main.css rename to src/main.css diff --git a/main.js b/src/main.js similarity index 98% rename from main.js rename to src/main.js index 6affb5d..b6c2364 100644 --- a/main.js +++ b/src/main.js @@ -3,7 +3,7 @@ import '@cozy-games/mnswpr/mnswpr.css' import '@cozy-games/utils/loading/loading.css' // The app's own version — this is what the heading shows and what the v* tags // and GitHub releases track. Not the engine's version (@cozy-games/mnswpr). -import * as pkg from './package.json' +import * as pkg from '../package.json' import { configureLeaderboard } from '@cozy-games/leaderboard/leaderboard-element.js' import { FirebaseAdapter } from '@cozy-games/leaderboard/adapters/firebase.js' import { NicknameService } from './modules/nickname/nickname.js' diff --git a/modules/nickname/nickname.js b/src/modules/nickname/nickname.js similarity index 100% rename from modules/nickname/nickname.js rename to src/modules/nickname/nickname.js diff --git a/modules/user/user.js b/src/modules/user/user.js similarity index 100% rename from modules/user/user.js rename to src/modules/user/user.js diff --git a/public/favicon.ico b/src/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to src/public/favicon.ico diff --git a/vite-env.d.ts b/src/vite-env.d.ts similarity index 100% rename from vite-env.d.ts rename to src/vite-env.d.ts diff --git a/vite.config.js b/vite.config.js index aab8e2e..cb89c3d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,13 +1,21 @@ import { resolve } from 'node:path' import { defineConfig } from 'vite' -// Multi-page build: the game (index.html) and the frozen Legends page. +const root = resolve(import.meta.dirname, 'src') + +// App source lives in src/; env files and the build output stay at the repo root. export default defineConfig({ + root, + // .env* files sit at the repo root next to package.json, not in src/. + envDir: import.meta.dirname, build: { + outDir: resolve(import.meta.dirname, 'dist'), + emptyOutDir: true, + // Multi-page build: the game (index.html) and the frozen Legends page. rollupOptions: { input: { - main: resolve(import.meta.dirname, 'index.html'), - legends: resolve(import.meta.dirname, 'legends.html') + main: resolve(root, 'index.html'), + legends: resolve(root, 'legends.html') } } }