1import { defineConfig } from 'vite';
2import { svelte } from '@sveltejs/vite-plugin-svelte';
3import { resolve } from 'path';
4
5export default defineConfig({
6 plugins: [
7 svelte({
8 emitCss: false, // Inline component CSS into JS bundle
9 }),
10 ],
11 build: {
12 rollupOptions: {
13 input: resolve(__dirname, 'src/injected/gui.ts'),
14 output: {
15 dir: '../assets/gui',
16 format: 'iife',
17 entryFileNames: 'gui.min.js',
18 name: '__dumberGUI',
19 inlineDynamicImports: true,
20 manualChunks: undefined, // Prevent chunk splitting
21 assetFileNames: '[name].[ext]', // Don't hash asset names since they're inlined
22 },
23 },
24 emptyOutDir: false,
25 target: ['es2020', 'chrome91', 'firefox90'],
26 minify: true,
27 sourcemap: false,
28 cssCodeSplit: false, // Prevent CSS code splitting
29 assetsInlineLimit: 100000000, // Inline all assets as data URLs (100MB limit)
30 },
31 resolve: {
32 alias: {
33 // Alias for easier imports
34 '$lib': resolve(__dirname, 'src/lib'),
35 '$components': resolve(__dirname, 'src/components'),
36 },
37 },
38});