Import project configuration: app/vite.config.js
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import react from '@vitejs/plugin-react';
|
||||
|
||||
// Vite config: bundles React + JSX at build time (no CDN, no Babel-Standalone),
|
||||
// emits hashed assets, copies /public/* (incl. fonts) to dist/.
|
||||
export default defineConfig({
|
||||
root: '.',
|
||||
publicDir: 'public',
|
||||
server: {
|
||||
port: 3009,
|
||||
host: '0.0.0.0',
|
||||
strictPort: true,
|
||||
proxy: {
|
||||
// Forward /api/* to the Fastify backend so the browser sees same-origin
|
||||
// cookies in dev. Production goes through Caddy with the same path-based
|
||||
// routing — the frontend code never needs to know which is in use.
|
||||
'/api': {
|
||||
target: 'http://localhost:3010',
|
||||
changeOrigin: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
preview: { port: 3009, host: '0.0.0.0', strictPort: true },
|
||||
build: {
|
||||
outDir: 'dist',
|
||||
sourcemap: true,
|
||||
target: 'es2020',
|
||||
cssCodeSplit: true,
|
||||
// Keep imported icon SVGs as real hashed files (never base64-inlined) so they
|
||||
// serve from /assets/ with gzip_static/brotli_static and CSS mask URLs stay clean.
|
||||
assetsInlineLimit(filePath) {
|
||||
if (filePath.includes('assets/icons/')) return false;
|
||||
// any other asset → Vite's default size-based inlining
|
||||
},
|
||||
rollupOptions: {
|
||||
input: {
|
||||
main: 'index.html',
|
||||
embed: 'embed.html',
|
||||
},
|
||||
output: {
|
||||
// Group React separately so the vendor bundle is cacheable across deploys.
|
||||
manualChunks(id) {
|
||||
if (id.includes('node_modules/react')) return 'vendor-react';
|
||||
if (id.includes('node_modules/three')) return 'vendor-three';
|
||||
if (id.includes('node_modules/d3') || id.includes('node_modules/d3-')) return 'vendor-d3';
|
||||
if (id.includes('node_modules')) return 'vendor';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [react()],
|
||||
});
|
||||
Reference in New Issue
Block a user