diff options
Diffstat (limited to 'packages/renderer/vite.config.js')
-rw-r--r-- | packages/renderer/vite.config.js | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/packages/renderer/vite.config.js b/packages/renderer/vite.config.js index 94f0b76..30729c0 100644 --- a/packages/renderer/vite.config.js +++ b/packages/renderer/vite.config.js | |||
@@ -3,21 +3,35 @@ | |||
3 | /* eslint-env node */ | 3 | /* eslint-env node */ |
4 | 4 | ||
5 | import { builtinModules } from 'module'; | 5 | import { builtinModules } from 'module'; |
6 | import { join } from 'path'; | ||
6 | import react from '@vitejs/plugin-react'; | 7 | import react from '@vitejs/plugin-react'; |
7 | 8 | ||
8 | import { chrome, makeConfig } from '../../config/vite-common'; | 9 | import { banner, chrome } from '../../config/build-common'; |
9 | 10 | ||
10 | /** @type {string} */ | 11 | const mode = process.env.MODE || 'development'; |
11 | const PACKAGE_ROOT = __dirname; | 12 | |
13 | const isDevelopment = mode === 'development'; | ||
12 | 14 | ||
13 | /** | 15 | /** |
14 | * @type {import('vite').UserConfig} | 16 | * @type {import('vite').UserConfig} |
15 | * @see https://vitejs.dev/config/ | 17 | * @see https://vitejs.dev/config/ |
16 | */ | 18 | */ |
17 | const config = makeConfig({ | 19 | export default { |
18 | root: PACKAGE_ROOT, | 20 | /** @type {import('vite').LogLevel} */ |
21 | logLevel: 'info', | ||
22 | mode, | ||
23 | root: __dirname, | ||
24 | cacheDir: join(__dirname, '../../.vite'), | ||
19 | plugins: [ | 25 | plugins: [ |
20 | react(), | 26 | react({ |
27 | babel: { | ||
28 | // Gets rid of deoptimization warnings for large chunks. | ||
29 | // We don't need to minify here, because the output of babel | ||
30 | // will get passed to esbuild anyways. | ||
31 | compact: false, | ||
32 | minified: false, | ||
33 | }, | ||
34 | }), | ||
21 | ], | 35 | ], |
22 | base: '', | 36 | base: '', |
23 | server: { | 37 | server: { |
@@ -25,16 +39,32 @@ const config = makeConfig({ | |||
25 | strict: true, | 39 | strict: true, |
26 | }, | 40 | }, |
27 | }, | 41 | }, |
42 | resolve: { | ||
43 | preserveSymlinks: true, | ||
44 | }, | ||
45 | optimizeDeps: { | ||
46 | exclude: [ | ||
47 | // Already bundled by esbuild. | ||
48 | '@sophie/shared', | ||
49 | ], | ||
50 | }, | ||
28 | build: { | 51 | build: { |
29 | target: chrome, | 52 | target: chrome, |
53 | assetsDir: '.', | ||
54 | outDir: 'dist', | ||
55 | emptyOutDir: true, | ||
56 | sourcemap: isDevelopment, | ||
57 | minify: !isDevelopment, | ||
58 | brotliSize: false, | ||
30 | rollupOptions: { | 59 | rollupOptions: { |
31 | external: [ | 60 | external: [ |
32 | 'mst-middlewares', | 61 | 'mst-middlewares', |
33 | 'remotedev', | 62 | 'remotedev', |
34 | ...builtinModules, | 63 | ...builtinModules, |
35 | ], | 64 | ], |
65 | output: { | ||
66 | banner, | ||
67 | } | ||
36 | }, | 68 | }, |
37 | }, | 69 | }, |
38 | }); | 70 | }; |
39 | |||
40 | export default config; | ||