正在加载工作脚本


🌐 Loading worker scripts

Worker 脚本是从本地文件系统或内存中同步读取的,而不是通过网络获取,这会改变哪些 URL 被接受以及如何报告失败:

🌐 Worker scripts are read synchronously from the local file system or from memory rather than fetched over the network, which changes which URLs are accepted and how failures are reported:

  • new Worker() 和 importScripts() 只接受 file:、data: 和 blob: 的 URL。任何其他方案都会让 new Worker() 抛出 NotSupportedError,而 importScripts() 会抛出 NetworkError。
  • 一个无法读取的脚本会让 importScripts() 抛出 NetworkError;对于 new Worker(),它会在 Worker 对象上触发 error 事件。
  • 重定向、nosniff 检查和 HTTP MIME 类型验证不适用。MIME 类型只对 data: 和 blob: URL 进行验证。credentials 选项会为 API 兼容性进行验证,但没有任何效果,因为不会发起网络请求。
  • 在主线程上,相对的脚本 URL 会相对于当前工作目录解析,因为没有文档基础 URL。在 worker 内,它们会相对于 worker 自己的 URL 解析(就像规范中规定的那样)。
  • 对于 blob: URL,脚本必须保存在内存中,所以像 fs.openAsBlob() 返回的那种由文件支持的 blobs 不能使用。

类型剥离 只适用于从 file: URL 加载的模块工作者。type 选项,而不是文件扩展名,决定了入口如何运行,所以 .cts 入口仍然会被作为 ES 模块进行评估。