Skip to content
Snippets Groups Projects
vite.config.ts 1.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Göbel's avatar
    Daniel Göbel committed
    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";
    
    Daniel Göbel's avatar
    Daniel Göbel committed
    
    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(),
          ],
    
    Daniel Göbel's avatar
    Daniel Göbel committed
        },
      },
    });