diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 14401080e2..9fa1f9cb83 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -12,13 +12,6 @@ async function main() { // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path" ]); - - // Tesseract.js worker runs in a separate worker_thread and needs its - // source files (+ WASM core + transitive deps) on disk — they cannot be bundled. - build.copyNodeModules([ - "tesseract.js", "tesseract.js-core", "wasm-feature-detect", - "regenerator-runtime", "is-url", "bmp-js" - ]); build.copy("/node_modules/ckeditor5/dist/ckeditor5-content.css", "ckeditor5-content.css"); build.buildFrontend(); diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index 7349cecb2b..23af1db90d 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -68,6 +68,14 @@ export default class BuildHelper { minify: true }); writeFileSync(join(this.outDir, "meta.json"), JSON.stringify(result.metafile)); + + // Tesseract.js is marked as external above because its worker runs in + // a separate worker_thread. Copy the worker source, WASM core and all + // transitive runtime deps so they are available in dist/node_modules. + this.copyNodeModules([ + "tesseract.js", "tesseract.js-core", "wasm-feature-detect", + "regenerator-runtime", "is-url", "bmp-js" + ]); } buildFrontend() {