aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/vite.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer/vite.config.js')
-rw-r--r--packages/renderer/vite.config.js48
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
5import { builtinModules } from 'module'; 5import { builtinModules } from 'module';
6import { join } from 'path';
6import react from '@vitejs/plugin-react'; 7import react from '@vitejs/plugin-react';
7 8
8import { chrome, makeConfig } from '../../config/vite-common'; 9import { banner, chrome } from '../../config/build-common';
9 10
10/** @type {string} */ 11const mode = process.env.MODE || 'development';
11const PACKAGE_ROOT = __dirname; 12
13const 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 */
17const config = makeConfig({ 19export 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
40export default config;