aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build.js')
-rw-r--r--scripts/build.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/build.js b/scripts/build.js
new file mode 100644
index 0000000..79cc564
--- /dev/null
+++ b/scripts/build.js
@@ -0,0 +1,50 @@
1#!/usr/bin/env node
2
3// @ts-check
4
5const { build } = require('vite');
6
7/** @type 'production' | 'development' */
8const mode = process.env.MODE = process.env.MODE || 'production';
9
10/** @type string[] */
11const packagesToBuild = [
12 'main',
13 'preload',
14 'renderer',
15];
16
17/**
18 * Builds all packages from `packagesToBuild` sequentially.
19 *
20 * @returns Promise<void>
21 */
22async function buildAll() {
23 const totalTimeLabel = 'Total bundling time';
24 console.time(totalTimeLabel);
25
26 for (const packageToBuild of packagesToBuild) {
27 const consoleGroupName = `package ${packageToBuild}`;
28 console.group(consoleGroupName);
29
30 const timeLabel = 'Bundling time';
31 console.time(timeLabel);
32
33 const packageConfigPath = `packages/${packageToBuild}/vite.config.js`;
34 await build({
35 configFile: packageConfigPath,
36 mode,
37 });
38
39 console.timeEnd(timeLabel);
40
41 console.groupEnd();
42 }
43
44 console.timeEnd(totalTimeLabel);
45}
46
47buildAll().catch((err) => {
48 console.error(err);
49 process.exit(1);
50});