diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-30 12:05:27 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-30 12:05:27 +0100 |
commit | 62d816402c6ddccf22c9ac68822cf100f61662d6 (patch) | |
tree | 3963ce347ea0278e22f63eb16615ef3a23c23bf9 /scripts/build.js | |
parent | build: Simplify clean script (diff) | |
download | sophie-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.js | 21 |
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 | ||
20 | function buildAll() { | 20 | function 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 | ||