build(homepage): tidy vite output naming and chunk strategy
- commit
- 0123133a614fa4bc9ebbf69e366e73d5539e9518
- author
- bamen · · 2025-09-17 05:18 UTC
- parent
- 64dd5d6
- signature
- unsigned
1 file · +7 -16
M gui/vite.config.homepage.ts +7 -16
| @@ -10,9 +10,9 @@ export default defineConfig({ | |||
| 10 | 10 | { | |
| 11 | 11 | name: 'homepage', | |
| 12 | 12 | title: 'Dumber Browser', | |
| 13 | - | script: 'homepage.min.js', | |
| 13 | + | script: 'homepage.js', | |
| 14 | 14 | css: 'homepage.css', | |
| 15 | - | filename: 'index.html', // Special case: homepage uses index.html | |
| 15 | + | filename: 'index.html', | |
| 16 | 16 | } | |
| 17 | 17 | ]), | |
| 18 | 18 | ], | |
| @@ -21,29 +21,20 @@ export default defineConfig({ | |||
| 21 | 21 | input: resolve(__dirname, 'src/pages/homepage.ts'), | |
| 22 | 22 | output: { | |
| 23 | 23 | dir: '../assets/gui', | |
| 24 | - | format: 'iife', | |
| 25 | 24 | entryFileNames: 'homepage.min.js', | |
| 26 | - | name: '__dumberHomepage', | |
| 27 | - | inlineDynamicImports: true, | |
| 28 | - | assetFileNames: (assetInfo) => { | |
| 29 | - | // Keep CSS as homepage.css to avoid conflicts with the main GUI | |
| 30 | - | if (assetInfo.name?.endsWith('.css')) { | |
| 31 | - | return 'homepage.[ext]'; | |
| 32 | - | } | |
| 33 | - | return '[name].[ext]'; | |
| 34 | - | }, | |
| 25 | + | chunkFileNames: '[name].js', | |
| 26 | + | assetFileNames: '[name].[ext]', | |
| 35 | 27 | }, | |
| 36 | 28 | }, | |
| 37 | - | emptyOutDir: false, // Don't clear the directory (shared with GUI build) | |
| 29 | + | emptyOutDir: false, | |
| 38 | 30 | target: ['es2020', 'chrome91', 'firefox90'], | |
| 39 | 31 | minify: true, | |
| 40 | 32 | sourcemap: false, | |
| 41 | - | cssCodeSplit: false, // Keep CSS in single file | |
| 42 | - | assetsInlineLimit: 0, // Don't inline assets by default | |
| 33 | + | cssCodeSplit: true, | |
| 34 | + | assetsInlineLimit: 4096, | |
| 43 | 35 | }, | |
| 44 | 36 | resolve: { | |
| 45 | 37 | alias: { | |
| 46 | - | // Alias for easier imports | |
| 47 | 38 | '$lib': resolve(__dirname, 'src/lib'), | |
| 48 | 39 | '$components': resolve(__dirname, 'src/components'), | |
| 49 | 40 | }, | |
| @@ -10,9 +10,9 @@ export default defineConfig({ | |||||
| 10 | { | 10 | { | ||
| 11 | name: 'homepage', | 11 | name: 'homepage', | ||
| 12 | title: 'Dumber Browser', | 12 | title: 'Dumber Browser', | ||
| 13 | - | script: 'homepage.min.js', | 13 | + | script: 'homepage.js', |
| 14 | css: 'homepage.css', | 14 | css: 'homepage.css', | ||
| 15 | - | filename: 'index.html', // Special case: homepage uses index.html | 15 | + | filename: 'index.html', |
| 16 | } | 16 | } | ||
| 17 | ]), | 17 | ]), | ||
| 18 | ], | 18 | ], | ||
| @@ -21,29 +21,20 @@ export default defineConfig({ | |||||
| 21 | input: resolve(__dirname, 'src/pages/homepage.ts'), | 21 | input: resolve(__dirname, 'src/pages/homepage.ts'), | ||
| 22 | output: { | 22 | output: { | ||
| 23 | dir: '../assets/gui', | 23 | dir: '../assets/gui', | ||
| 24 | - | format: 'iife', | |||
| 25 | entryFileNames: 'homepage.min.js', | 24 | entryFileNames: 'homepage.min.js', | ||
| 26 | - | name: '__dumberHomepage', | 25 | + | chunkFileNames: '[name].js', |
| 27 | - | inlineDynamicImports: true, | 26 | + | assetFileNames: '[name].[ext]', |
| 28 | - | assetFileNames: (assetInfo) => { | |||
| 29 | - | // Keep CSS as homepage.css to avoid conflicts with the main GUI | |||
| 30 | - | if (assetInfo.name?.endsWith('.css')) { | |||
| 31 | - | return 'homepage.[ext]'; | |||
| 32 | - | } | |||
| 33 | - | return '[name].[ext]'; | |||
| 34 | - | }, | |||
| 35 | }, | 27 | }, | ||
| 36 | }, | 28 | }, | ||
| 37 | - | emptyOutDir: false, // Don't clear the directory (shared with GUI build) | 29 | + | emptyOutDir: false, |
| 38 | target: ['es2020', 'chrome91', 'firefox90'], | 30 | target: ['es2020', 'chrome91', 'firefox90'], | ||
| 39 | minify: true, | 31 | minify: true, | ||
| 40 | sourcemap: false, | 32 | sourcemap: false, | ||
| 41 | - | cssCodeSplit: false, // Keep CSS in single file | 33 | + | cssCodeSplit: true, |
| 42 | - | assetsInlineLimit: 0, // Don't inline assets by default | 34 | + | assetsInlineLimit: 4096, |
| 43 | }, | 35 | }, | ||
| 44 | resolve: { | 36 | resolve: { | ||
| 45 | alias: { | 37 | alias: { | ||
| 46 | - | // Alias for easier imports | |||
| 47 | '$lib': resolve(__dirname, 'src/lib'), | 38 | '$lib': resolve(__dirname, 'src/lib'), | ||
| 48 | '$components': resolve(__dirname, 'src/components'), | 39 | '$components': resolve(__dirname, 'src/components'), | ||
| 49 | }, | 40 | }, | ||