import { copyFileSync } from "node:fs"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { defineConfig } from "vite"; const extensionRoot = dirname(fileURLToPath(import.meta.url)); export default defineConfig({ build: { outDir: "dist", emptyOutDir: true, rollupOptions: { input: { popup: resolve(extensionRoot, "popup.html"), options: resolve(extensionRoot, "options.html"), background: resolve(extensionRoot, "src/background.ts"), content: resolve(extensionRoot, "src/content.ts"), }, output: { entryFileNames: "assets/[name].js", chunkFileNames: "assets/[name]-[hash].js", assetFileNames: "assets/[name][extname]", }, }, }, plugins: [ { name: "copy-manifest", closeBundle() { copyFileSync(resolve(extensionRoot, "manifest.json"), resolve(extensionRoot, "dist/manifest.json")); }, }, ], });