diff options
Diffstat (limited to 'packages/renderer')
-rw-r--r-- | packages/renderer/package.json | 7 | ||||
-rw-r--r-- | packages/renderer/src/devTools.ts | 13 | ||||
-rw-r--r-- | packages/renderer/vite.config.js | 48 |
3 files changed, 47 insertions, 21 deletions
diff --git a/packages/renderer/package.json b/packages/renderer/package.json index ff8955a..1d34cdb 100644 --- a/packages/renderer/package.json +++ b/packages/renderer/package.json | |||
@@ -5,8 +5,7 @@ | |||
5 | "main": "dist/index.html", | 5 | "main": "dist/index.html", |
6 | "types": "dist-types/index.d.ts", | 6 | "types": "dist-types/index.d.ts", |
7 | "scripts": { | 7 | "scripts": { |
8 | "clean": "rimraf dist node_modules", | 8 | "clean": "rimraf dist", |
9 | "build": "vite build", | ||
10 | "typecheck": "tsc" | 9 | "typecheck": "tsc" |
11 | }, | 10 | }, |
12 | "dependencies": { | 11 | "dependencies": { |
@@ -18,7 +17,7 @@ | |||
18 | "@sophie/shared": "workspace:*", | 17 | "@sophie/shared": "workspace:*", |
19 | "lodash": "^4.17.21", | 18 | "lodash": "^4.17.21", |
20 | "mobx": "^6.3.10", | 19 | "mobx": "^6.3.10", |
21 | "mobx-react-lite": "^3.2.2", | 20 | "mobx-react-lite": "^3.2.3", |
22 | "mobx-state-tree": "^5.1.0", | 21 | "mobx-state-tree": "^5.1.0", |
23 | "react": "^17.0.2", | 22 | "react": "^17.0.2", |
24 | "react-dom": "^17.0.2" | 23 | "react-dom": "^17.0.2" |
@@ -32,6 +31,6 @@ | |||
32 | "remotedev": "^0.2.9", | 31 | "remotedev": "^0.2.9", |
33 | "rimraf": "^3.0.2", | 32 | "rimraf": "^3.0.2", |
34 | "typescript": "^4.5.4", | 33 | "typescript": "^4.5.4", |
35 | "vite": "^2.7.7" | 34 | "vite": "^2.7.9" |
36 | } | 35 | } |
37 | } | 36 | } |
diff --git a/packages/renderer/src/devTools.ts b/packages/renderer/src/devTools.ts index 7c44559..3ec66aa 100644 --- a/packages/renderer/src/devTools.ts +++ b/packages/renderer/src/devTools.ts | |||
@@ -61,12 +61,9 @@ export function exposeToReduxDevtools(model: IAnyStateTreeNode): void { | |||
61 | * `build/watch.js` sends a reload event on bundle write. | 61 | * `build/watch.js` sends a reload event on bundle write. |
62 | */ | 62 | */ |
63 | export function hotReloadServices(): void { | 63 | export function hotReloadServices(): void { |
64 | import.meta.hot?.on( | 64 | import.meta.hot?.on('sophie:reload-services', () => { |
65 | 'sophie:reload-services', | 65 | window.sophieRenderer.dispatchAction({ |
66 | () => { | 66 | action: 'reload-all-services', |
67 | window.sophieRenderer.dispatchAction({ | 67 | }); |
68 | action: 'reload-all-services', | 68 | }); |
69 | }); | ||
70 | }, | ||
71 | ); | ||
72 | } | 69 | } |
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; | ||