mirror of
https://github.com/Xevion/grain.git
synced 2025-12-05 23:15:08 -06:00
Major framework and tooling changes: - Migrate from React 19 to Preact 10 with preact-iso for routing - Replace @mantine/hooks with custom hooks (useBooleanToggle, useViewportSize) - Switch from @heroicons/react to lucide-preact for icons - Replace chance.js with random-js for RNG Testing infrastructure: - Add Vitest with @testing-library/preact and happy-dom - Set up test configuration and initial App tests - Add Vitest UI for interactive test running Build optimizations: - Add cssnano for CSS minification - Configure aggressive bundle optimizations in Vite - Update to Tailwind CSS 4.1.17 Project structure: - Consolidate entry point from main.tsx to index.tsx - Reorganize CSS location (styles/index.css → index.css) - Add ESLint with preact config - Update TypeScript configuration for Preact
31 lines
836 B
TypeScript
31 lines
836 B
TypeScript
import { defineConfig, loadEnv } from "vite";
|
|
import preact from "@preact/preset-vite";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import { visualizer } from "rollup-plugin-visualizer";
|
|
import cssnano from "cssnano";
|
|
|
|
// https://vitejs.dev/config/
|
|
export default ({ mode }) => {
|
|
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
|
|
|
|
return defineConfig({
|
|
base: "/",
|
|
plugins: [
|
|
preact({
|
|
prerender: {
|
|
enabled: true,
|
|
renderTarget: "#root",
|
|
},
|
|
}),
|
|
tailwindcss(),
|
|
visualizer({
|
|
template: "treemap",
|
|
open: true, // Automatically open the report in your browser after build
|
|
filename: "stats.html", // Output file name
|
|
gzipSize: true, // Show gzip size
|
|
brotliSize: true, // Show brotli size
|
|
}),
|
|
],
|
|
});
|
|
};
|