Files
FuneralArranger/vite.demo.config.ts
Richie 6ac706f8e7 Add arrangement demo site from original project
Copies the multi-page demo app (Providers → Packages → Comparison flow)
with Zustand basket state, URL sync, and per-slice Vite build config.
All pages render correctly on React 19 + MUI v7 with zero code changes needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 14:32:16 +10:00

42 lines
1.2 KiB
TypeScript

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
/**
* Per-slice demo build. Slice name comes from `--mode <name>` and selects
* the app folder, base path, and output directory.
*
* Dev: vite -c vite.demo.config.ts --mode arrangement
* Build: vite build -c vite.demo.config.ts --mode arrangement
* → dist-demo/arrangement/
*/
export default defineConfig(({ mode, command }) => {
const slice = mode;
const appRoot = path.resolve(__dirname, `src/demo/apps/${slice}`);
return {
root: appRoot,
envDir: __dirname,
base: command === 'build' ? `/${slice}/` : '/',
publicDir: path.resolve(__dirname, 'brandassets'),
plugins: [react()],
resolve: {
alias: {
'@atoms': path.resolve(__dirname, 'src/components/atoms'),
'@molecules': path.resolve(__dirname, 'src/components/molecules'),
'@organisms': path.resolve(__dirname, 'src/components/organisms'),
'@theme': path.resolve(__dirname, 'src/theme'),
},
},
build: {
outDir: path.resolve(__dirname, `dist-demo/${slice}`),
emptyOutDir: true,
sourcemap: true,
},
server: {
port: 5180,
open: false,
},
};
});