34 lines
979 B
TypeScript
34 lines
979 B
TypeScript
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"));
|
|
},
|
|
},
|
|
],
|
|
});
|