53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { resolve } from "path";
|
|
import { mergeConfig, defineConfig } from "vite";
|
|
import { crx, ManifestV3Export } from "@crxjs/vite-plugin";
|
|
import baseConfig, { baseManifest, baseBuildOptions } from "./vite.config.base";
|
|
import hotReloadExtension from "hot-reload-extension-vite";
|
|
|
|
const outDir = resolve(__dirname, "dist");
|
|
const isDev = process.env.NODE_ENV === "development";
|
|
|
|
export default mergeConfig(
|
|
baseConfig,
|
|
defineConfig({
|
|
plugins: [
|
|
crx({
|
|
manifest: {
|
|
...baseManifest,
|
|
background: {
|
|
service_worker: "src/pages/background/index.ts",
|
|
type: "module",
|
|
},
|
|
} as ManifestV3Export,
|
|
browser: "chrome",
|
|
contentScripts: {
|
|
injectCss: true,
|
|
},
|
|
}),
|
|
...(isDev
|
|
? [
|
|
hotReloadExtension({
|
|
log: true,
|
|
backgroundPath: "src/pages/background/index.ts",
|
|
}),
|
|
]
|
|
: []),
|
|
],
|
|
build: {
|
|
...baseBuildOptions,
|
|
outDir,
|
|
...(isDev
|
|
? {
|
|
rollupOptions: {
|
|
output: {
|
|
entryFileNames: "assets/[name].js",
|
|
chunkFileNames: "assets/[name].js",
|
|
assetFileNames: "assets/[name][extname]",
|
|
},
|
|
},
|
|
}
|
|
: {}),
|
|
},
|
|
}),
|
|
);
|