postiz/apps/extension/vite.config.chrome.ts

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]",
},
},
}
: {}),
},
}),
);