1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { resolve } from 'node:path';
- import { defineConfig, type PluginOption } from "vite";
- import libAssetsPlugin from '@laynezh/vite-plugin-lib-assets';
- import makeManifestPlugin from './utils/plugins/make-manifest-plugin';
- import { watchPublicPlugin, watchRebuildPlugin } from '@extension/hmr';
- import { isDev, isProduction, watchOption } from '@extension/vite-config';
- const rootDir = resolve(__dirname);
- const srcDir = resolve(rootDir, 'src');
- const outDir = resolve(rootDir, '..', 'dist');
- export default defineConfig({
- resolve: {
- alias: {
- '@root': rootDir,
- '@src': srcDir,
- '@assets': resolve(srcDir, 'assets'),
- },
- conditions: ['browser', 'module', 'import', 'default'],
- mainFields: ['browser', 'module', 'main']
- },
- server: {
- // Restrict CORS to only allow localhost
- cors: {
- origin: ['http://localhost:5173', 'http://localhost:3000'],
- methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
- credentials: true
- },
- host: 'localhost',
- },
- plugins: [
- libAssetsPlugin({
- outputPath: outDir,
- }) as PluginOption,
- watchPublicPlugin(),
- makeManifestPlugin({ outDir }),
- isDev && watchRebuildPlugin({ reload: true, id: 'chrome-extension-hmr' }),
- ],
- publicDir: resolve(rootDir, 'public'),
- build: {
- lib: {
- formats: ['iife'],
- entry: resolve(__dirname, 'src/background/index.ts'),
- name: 'BackgroundScript',
- fileName: 'background',
- },
- outDir,
- emptyOutDir: false,
- sourcemap: isDev,
- minify: isProduction,
- reportCompressedSize: isProduction,
- watch: watchOption,
- rollupOptions: {
- external: [
- 'chrome',
- // 'chromium-bidi/lib/cjs/bidiMapper/BidiMapper.js'
- ],
- },
- },
- envDir: '../',
- });
|