vite.config.extension.ts
Rama main · réplica de lectura del repositorio original.
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"),
},
},
});