Files
helm-dashboard/frontend/vite.config.ts
yuri-sakharov 077582e795 Added lazy load, visualizer and optimized bundle chunks (#635)
* Added lazy load.

* Added visualizer and improved hljs import only yaml

* Optimized manualChunks
2025-12-06 15:19:35 +00:00

60 lines
1.6 KiB
TypeScript

import tailwindcss from "@tailwindcss/vite";
import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
import { viteStaticCopy } from "vite-plugin-static-copy";
import flowbiteReact from "flowbite-react/plugin/vite";
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
const port = env.VITE_SERVER_PORT || 8080;
return {
plugins: [
react({ babel: { plugins: ["babel-plugin-react-compiler"] } }), // React and "babel-plugin-react-compiler" plugins should be first
tailwindcss(),
flowbiteReact(),
visualizer({
filename: "../pkg/frontend/dist/stats.html",
gzipSize: true,
brotliSize: true,
}),
viteStaticCopy({
targets: [
{
src: "public/analytics.js",
dest: "assets/",
},
{
src: "public/openapi.json",
dest: "assets/",
},
{
src: "public/logo.svg",
dest: "assets/",
},
],
}),
],
build: {
assetsDir: "./assets/",
outDir: "../pkg/frontend/dist",
emptyOutDir: true,
rollupOptions: {
output: {
manualChunks: {
react: ["react", "react-dom", "react-router", "flowbite-react"],
},
},
},
},
server: {
proxy: {
"^/api/.*": `http://127.0.0.1:${port}`,
"^/status*": `http://127.0.0.1:${port}`,
"^/diff*": `http://127.0.0.1:${port}`,
"^/static*": `http://127.0.0.1:${port}`,
},
},
};
});