// vite.config.js import { defineConfig } from "vite" import { fileURLToPath, URL } from "url" import postcss from "./postcss.config.js" import react from "@vitejs/plugin-react" import image from "@rollup/plugin-image" export default defineConfig({ plugins: [react(), image()], define: { // In dev, we need to disable this, but in prod, we need to enable it "process.env.NODE_ENV": JSON.stringify("production") }, css: { postcss }, 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: { lib: { entry: "src/main.jsx", name: "EmbeddedAnythingLLM", formats: ["umd"], fileName: (_format) => `anythingllm-chat-widget.js` }, 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 }, cssCodeSplit: false, assetsInlineLimit: 100000000, minify: "esbuild", outDir: "dist", emptyOutDir: true, inlineDynamicImports: true, assetsDir: "", sourcemap: "inline" }, optimizeDeps: { esbuildOptions: { define: { global: "globalThis" }, plugins: [] } } })