42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import react from '@vitejs/plugin-react-swc';
|
|
import { resolve } from 'path';
|
|
import { defineConfig } from 'vite';
|
|
import copyContentStyle from './utils/plugins/copy-content-style';
|
|
import makeManifest from './utils/plugins/make-manifest';
|
|
|
|
const root = resolve(__dirname, 'src');
|
|
const pagesDir = resolve(root, 'pages');
|
|
const assetsDir = resolve(root, 'assets');
|
|
const outDir = resolve(__dirname, 'dist');
|
|
const publicDir = resolve(__dirname, 'public');
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
alias: {
|
|
'@src': root,
|
|
'@assets': assetsDir,
|
|
'@pages': pagesDir,
|
|
},
|
|
},
|
|
plugins: [react(), makeManifest(), copyContentStyle()],
|
|
publicDir,
|
|
build: {
|
|
outDir,
|
|
sourcemap: process.env.__DEV__ === 'true',
|
|
rollupOptions: {
|
|
input: {
|
|
devtools: resolve(pagesDir, 'devtools', 'index.html'),
|
|
panel: resolve(pagesDir, 'panel', 'index.html'),
|
|
content: resolve(pagesDir, 'content', 'index.ts'),
|
|
background: resolve(pagesDir, 'background', 'index.ts'),
|
|
popup: resolve(pagesDir, 'popup', 'index.html'),
|
|
newtab: resolve(pagesDir, 'newtab', 'index.html'),
|
|
options: resolve(pagesDir, 'options', 'index.html'),
|
|
},
|
|
output: {
|
|
entryFileNames: (chunk) => `src/pages/${chunk.name}/index.js`,
|
|
},
|
|
},
|
|
},
|
|
});
|