aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/vite.config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/frontend/vite.config.ts')
-rw-r--r--subprojects/frontend/vite.config.ts23
1 files changed, 22 insertions, 1 deletions
diff --git a/subprojects/frontend/vite.config.ts b/subprojects/frontend/vite.config.ts
index bb421788..6ec2d513 100644
--- a/subprojects/frontend/vite.config.ts
+++ b/subprojects/frontend/vite.config.ts
@@ -4,7 +4,8 @@ import { fileURLToPath } from 'node:url';
4 4
5import { lezer } from '@lezer/generator/rollup'; 5import { lezer } from '@lezer/generator/rollup';
6import react from '@vitejs/plugin-react'; 6import react from '@vitejs/plugin-react';
7import { defineConfig } from 'vite'; 7import { minify } from 'html-minifier-terser';
8import { defineConfig, PluginOption } from 'vite';
8import injectPreload from 'vite-plugin-inject-preload'; 9import injectPreload from 'vite-plugin-inject-preload';
9import { VitePWA } from 'vite-plugin-pwa'; 10import { VitePWA } from 'vite-plugin-pwa';
10 11
@@ -33,12 +34,32 @@ const { name: packageName, version: packageVersion } = JSON.parse(
33process.env.VITE_PACKAGE_NAME ??= packageName; 34process.env.VITE_PACKAGE_NAME ??= packageName;
34process.env.VITE_PACKAGE_VERSION ??= packageVersion; 35process.env.VITE_PACKAGE_VERSION ??= packageVersion;
35 36
37const minifyPlugin: PluginOption = {
38 name: 'minify-html',
39 enforce: 'post',
40 async transformIndexHtml(html) {
41 if (isDevelopment) {
42 return html;
43 }
44 return minify(html, {
45 collapseWhitespace: true,
46 collapseBooleanAttributes: true,
47 minifyCSS: true,
48 removeComments: true,
49 removeAttributeQuotes: true,
50 removeRedundantAttributes: true,
51 sortAttributes: true,
52 });
53 },
54};
55
36export default defineConfig({ 56export default defineConfig({
37 logLevel: 'info', 57 logLevel: 'info',
38 mode, 58 mode,
39 root: thisDir, 59 root: thisDir,
40 cacheDir: path.join(thisDir, 'build/vite/cache'), 60 cacheDir: path.join(thisDir, 'build/vite/cache'),
41 plugins: [ 61 plugins: [
62 minifyPlugin,
42 react({ 63 react({
43 babel: { 64 babel: {
44 // Gets rid of deoptimization warnings for large chunks. 65 // Gets rid of deoptimization warnings for large chunks.