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