Ctrl K
ComunidadGuías…

vite.config.extension.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const repoRoot = path.dirname(fileURLToPath(import.meta.url));

/**
 * Dedicated Chrome MV3 build. Rooted at `extension/`, output to
 * `dist-extension/`. `extension/public/` (manifest.json + icons/) is copied
 * to the output root so the unpacked extension loads as-is.
 *
 * Named rollup inputs keep entry filenames stable. The MV3 background
 * service worker is emitted at a stable `background.js` (module worker) so
 * the manifest can reference it; the popup entry keeps a hashed name under
 * assets/.
 */
export default defineConfig({
  root: path.resolve(repoRoot, "extension"),
  build: {
    outDir: path.resolve(repoRoot, "dist-extension"),
    emptyOutDir: true,
    sourcemap: true,
    rollupOptions: {
      input: {
        popup: path.resolve(repoRoot, "extension", "popup.html"),
        background: path.resolve(repoRoot, "extension", "src", "background.ts"),
      },
      output: {
        entryFileNames: (chunkInfo) =>
          chunkInfo.name === "background"
            ? "background.js"
            : "assets/[name]-[hash].js",
      },
    },
  },
  resolve: {
    alias: {
      "@": path.resolve(repoRoot, "./src"),
    },
  },
});