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