diff --git a/packages/ac3/package.json b/packages/ac3/package.json index 225fc05..a05b297 100644 --- a/packages/ac3/package.json +++ b/packages/ac3/package.json @@ -18,6 +18,9 @@ "dist", "src" ], + "browser": { + "worker_threads": false + }, "sideEffects": false, "license": "MPL-2.0", "repository": { diff --git a/packages/mp3-encoder/package.json b/packages/mp3-encoder/package.json index 63e6769..8b5a498 100644 --- a/packages/mp3-encoder/package.json +++ b/packages/mp3-encoder/package.json @@ -18,6 +18,9 @@ "dist", "src" ], + "browser": { + "worker_threads": false + }, "sideEffects": false, "license": "MPL-2.0", "repository": { diff --git a/scripts/esbuild/inlined-workers.ts b/scripts/esbuild/inlined-workers.ts index f93098d..79a5bd8 100644 --- a/scripts/esbuild/inlined-workers.ts +++ b/scripts/esbuild/inlined-workers.ts @@ -39,11 +39,10 @@ export default async function inlineWorker(scriptText) { // Node, Bun (Bun's Worker is flaky, worker_threads works much better) let Worker; - const workerModule = 'node:worker_threads'; try { - Worker = (await import(workerModule)).Worker; + Worker = (await import('worker_threads')).Worker; } catch { - Worker = require(workerModule).Worker; + Worker = require('worker_threads').Worker; } const worker = new Worker(scriptText, { eval: true }); @@ -56,6 +55,9 @@ export default async function inlineWorker(scriptText) { build.onResolve({ filter: /^__inline-worker$/ }, ({ path }) => { return { path, namespace: 'inline-worker' }; }); + build.onResolve({ filter: /^worker_threads$/ }, ({ path }) => { + return { path, external: true }; // Keep it in the bundle + }); build.onLoad({ filter: /.*/, namespace: 'inline-worker' }, () => { return { contents: inlineWorkerFunctionCode, loader: 'js' }; });