import { fileURLToPath, URL } from "node:url"; import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill"; import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill"; import rollupNodePolyFill from "rollup-plugin-node-polyfills"; import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], resolve: { alias: { "@": fileURLToPath(new URL("./src", import.meta.url)), buffer: "rollup-plugin-node-polyfills/polyfills/buffer-es6", util: "rollup-plugin-node-polyfills/polyfills/util", stream: "rollup-plugin-node-polyfills/polyfills/stream", process: "rollup-plugin-node-polyfills/polyfills/process-es6", }, }, optimizeDeps: { esbuildOptions: { // Node.js global to browser globalThis define: { global: "globalThis", }, // Enable esbuild polyfill plugins plugins: [ NodeGlobalsPolyfillPlugin({ buffer: true, process: true, }), NodeModulesPolyfillPlugin(), ], }, }, build: { rollupOptions: { plugins: [ // Enable rollup polyfills plugin // used during production bundling rollupNodePolyFill(), ], }, }, });