Web Workers
Rslib 支持在库中使用 Web Worker。当 Rslib 遇到 new Worker(new URL(..., import.meta.url)) 时,会将引用的模块输出为独立的 Web Worker chunk,并重写 URL 以指向生成的文件。
Warning
Rslib 的 Web Worker 功能面向 ESM 产物,不支持 CJS 产物。
使用
Web Worker 请求必须可以被静态分析。请在 new URL() 中直接使用相对路径字符串和 import.meta.url:
Bundle 模式
在 bundle 模式下,无需额外配置。Web Worker 模块及其依赖会被打包到独立的 Web Worker chunk 中:
Bundleless 模式
在 bundleless 模式下,source.entry 匹配的每个源文件都会被视为一个入口。Web Worker 文件必须从入口 glob 中排除,因为它们会被单独输出为 Web Worker chunk。
使用 .worker.ts 命名约定可以方便地排除所有 Web Worker 文件:
rslib.config.ts
使用上面示例中的源文件时,Rslib 会将 index.ts 和 helper.ts 输出为常规 bundleless 产物。Web Worker chunk 会被单独输出,并引用生成的 helper.js:
<worker-chunk>.js
