このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスの対象となります。
特に明記されていない限り、以下の内容は元のコンテンツに基づいて変更および削除された結果であると想定できます。
Web Workers は、Rspackの第一級市民です。つまり、Web Workersを直接使用するためにローダーは必要ありません。
new Worker()
に加えて、以下の構文もサポートされています。
new SharedWorker()
import { Worker } from "worker_threads"
: 通常、Node環境で使用されます。navigator.serviceWorker.register()
: サービスワーカーの登録に使用されます。カスタム構文は、module.parser.javascript.worker
を介して提供できます。
例:
この構文は、バンドラーなしでコードを実行できるようにするために選択されました。ブラウザーのネイティブECMAScriptモジュールでも使用できます。
new Worker
はURLの文字列表現も受け入れることができますが、RspackではURLの受け渡しのみがサポートされています。
Rspackは、new Worker
での変数の使用をサポートしていません。たとえば、次のコードは機能しません。
これは、Rspackが構文を静的に解析できないためです。 RspackでWorker構文を使用する場合は、この制限に注意してください。
現在、/* webpackEntryOptions: { filename: "workers/[name].js" } */
マジックコメントはサポートされていません。
worker-loaderは、プロジェクトをRspackに移行しやすくするための一時的なソリューションとしてのみ提供されています。代わりに new Worker()
構文を使用することをお勧めします。
Rspackはworker-loaderもサポートしています。ただし、worker-loader はメンテナンスされていないため、代わりに worker-rspack-loader を使用してください。
resolveLoader を使用して、worker-loader を worker-rspack-loader に置き換えます。