import { defineConfig } from "vite" import { fileURLToPath, URL } from "url" import postcss from "./postcss.config.js" import react from "@vitejs/plugin-react" import dns from "dns" import { visualizer } from "rollup-plugin-visualizer" dns.setDefaultResultOrder("verbatim") // https://vitejs.dev/config/ export default defineConfig({ server: { port: 3000, host: "localhost" }, define: { "process.env": process.env }, css: { postcss }, plugins: [ react(), visualizer({ template: "treemap", // or sunburst open: false, gzipSize: true, brotliSize: true, filename: "bundleinspector.html" // will be saved in project's root }) ], resolve: { alias: [ { find: "@", replacement: fileURLToPath(new URL("./src", import.meta.url)) }, { process: "process/browser", stream: "stream-browserify", zlib: "browserify-zlib", util: "util", find: /^~.+/, replacement: (val) => { return val.replace(/^~/, "") } } ] }, build: { rollupOptions: { external: [ // Reduces transformation time by 50% and we don't even use this variant, so we can ignore. /@phosphor-icons\/react\/dist\/ssr/, ] }, commonjsOptions: { transformMixedEsModules: true } }, optimizeDeps: { esbuildOptions: { define: { global: "globalThis" }, plugins: [] } } })