|
1 | | -// vite.config.ts |
2 | | -import { defineConfig } from 'vite'; |
| 1 | +import { crx } from '@crxjs/vite-plugin'; |
| 2 | +import svgSpritePlugin from '@pivanov/vite-plugin-svg-sprite'; |
3 | 3 | import tailwindcss from '@tailwindcss/vite'; |
4 | 4 | import react from '@vitejs/plugin-react-swc'; |
5 | | -import tsconfigPaths from 'vite-tsconfig-paths'; |
6 | 5 | import { resolve } from 'path'; |
7 | | -import { crx } from '@crxjs/vite-plugin'; |
| 6 | +import { defineConfig, loadEnv } from 'vite'; |
| 7 | +import tsconfigPaths from 'vite-tsconfig-paths'; |
8 | 8 | import manifest from './manifest.json'; |
9 | | -import svgSpritePlugin from '@pivanov/vite-plugin-svg-sprite'; |
10 | 9 |
|
11 | | -export default defineConfig({ |
12 | | - plugins: [ |
13 | | - react(), |
14 | | - tsconfigPaths({ |
15 | | - projects: [resolve(__dirname, './tsconfig.json')], |
16 | | - }), |
17 | | - tailwindcss(), |
18 | | - crx({ manifest }), |
19 | | - svgSpritePlugin({ |
20 | | - iconDirs: ['../../packages/design-system/src/icons/source'], |
21 | | - symbolId: 'icon-[name]', |
22 | | - inject: 'body-last', |
23 | | - }), |
24 | | - ], |
| 10 | +export default defineConfig(({ mode }) => { |
| 11 | + const env = loadEnv(mode, process.cwd()); |
| 12 | + |
| 13 | + const dynamicManifest = { |
| 14 | + ...manifest, |
| 15 | + name: env.VITE_EXTENSION_NAME || manifest.name, |
| 16 | + }; |
| 17 | + |
| 18 | + return { |
| 19 | + define: { |
| 20 | + __ALLOWED_ORIGINS__: JSON.stringify( |
| 21 | + env.VITE_ALLOWED_ORIGINS?.split(',').filter(Boolean) || [] |
| 22 | + ), |
| 23 | + }, |
| 24 | + |
| 25 | + plugins: [ |
| 26 | + react(), |
| 27 | + tsconfigPaths({ |
| 28 | + projects: [resolve(__dirname, './tsconfig.json')], |
| 29 | + }), |
| 30 | + tailwindcss(), |
| 31 | + crx({ manifest: dynamicManifest }), |
| 32 | + svgSpritePlugin({ |
| 33 | + iconDirs: ['../../packages/design-system/src/icons/source'], |
| 34 | + symbolId: 'icon-[name]', |
| 35 | + inject: 'body-last', |
| 36 | + }), |
| 37 | + ], |
25 | 38 |
|
26 | | - build: { |
27 | | - outDir: 'dist', |
28 | | - copyPublicDir: true, |
29 | | - }, |
30 | | - publicDir: 'public', |
| 39 | + build: { |
| 40 | + outDir: 'dist', |
| 41 | + copyPublicDir: true, |
| 42 | + }, |
| 43 | + publicDir: 'public', |
31 | 44 |
|
32 | | - server: { |
33 | | - port: 5175, |
34 | | - strictPort: true, |
35 | | - }, |
| 45 | + server: { |
| 46 | + port: 5175, |
| 47 | + strictPort: true, |
| 48 | + }, |
| 49 | + }; |
36 | 50 | }); |
0 commit comments