aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build.js
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-30 12:05:27 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-30 12:05:27 +0100
commit62d816402c6ddccf22c9ac68822cf100f61662d6 (patch)
tree3963ce347ea0278e22f63eb16615ef3a23c23bf9 /scripts/build.js
parentbuild: Simplify clean script (diff)
downloadsophie-62d816402c6ddccf22c9ac68822cf100f61662d6.tar.gz
sophie-62d816402c6ddccf22c9ac68822cf100f61662d6.tar.zst
sophie-62d816402c6ddccf22c9ac68822cf100f61662d6.zip
build: Use shared packages through modules
By running the build for the shared packages only once, errors in them are reported only once in watch mode. We still have to point jest to the original source files (and rebuild the shared source files as part of the test), because it won't load the "module" entry of the shared packages. However, as a benefit, jest can now run even if the shared packages haven't been built yet.
Diffstat (limited to 'scripts/build.js')
-rw-r--r--scripts/build.js21
1 files changed, 13 insertions, 8 deletions
diff --git a/scripts/build.js b/scripts/build.js
index 416530d..5abcdab 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -18,16 +18,21 @@ function buildPackageVite(packageName) {
18} 18}
19 19
20function buildAll() { 20function buildAll() {
21 // Esbuild can natively load a typescript main file, 21 const buildServiceShared = buildPackageEsbuild('service-shared');
22 // so we don't need to bundle `service-shared`.
23 // We onyl bundle `shared` for vite.
24 const buildShared = buildPackageEsbuild('shared'); 22 const buildShared = buildPackageEsbuild('shared');
25 return Promise.all([ 23 return Promise.all([
26 buildShared.then(() => buildPackageEsbuild('main')), 24 Promise.all([
27 buildPackageEsbuild('service-inject'), 25 buildServiceShared,
28 buildPackageEsbuild('service-preload'), 26 buildShared,
29 buildPackageEsbuild('preload'), 27 ]).then(() => buildPackageEsbuild('main')),
30 buildPackageVite('renderer'), 28 buildServiceShared.then(() => Promise.all([
29 buildPackageEsbuild('service-inject'),
30 buildPackageEsbuild('service-preload'),
31 ])),
32 buildShared.then(() => Promise.all([
33 buildPackageEsbuild('preload'),
34 buildPackageVite('renderer'),
35 ])),
31 ]); 36 ]);
32} 37}
33 38