javascript - URL.createObjectUrl() 如何成为模块?
问题描述
我使用 Web Workers 已经有一段时间了,但直到现在我才发现需要将模块导入其中。尝试此操作后,我有些震惊地发现这在 Firefox Dev 76 中尚无法实现。在查看了该问题的解决方案后,我有些不知所措。这就是我正在做的事情:
我有一个工作人员需要导入在浏览器中工作的 NodeJS 模块。该工作程序是从给定的代码字符串生成的。因此,在生成的工作人员中,我正在运行:
//worker
let { foo } = importScripts("http://localhost:3000/some-blob-url");
哪个成功导入其他代码。我还在给定代码字符串中检测到导入时,运行此代码以生成另一个带有导入代码的 URL,该导入代码导出我想要的模块的一部分。
let blobURL = URL.createObjectURL(new Blob([importingCode], { type: 'application/javascript' }));
在哪里importingCode
:
import { foo } from 'module';
export { foo };
但是,在导入 Blob URL 时worker.js
,我被告知导入只能发生在模块的顶层,这意味着这个创建的 Blob 不是模块(importingCode)。
createObjectURL
给定一个 Blob 代码,我将如何将其初始化为支持导入的模块。我知道我链接到的答案使用了 Webpackrequire
语句,但我想在这里避免使用 Webpack。这可能吗?
抱歉,如果我的问题含糊不清,请告诉我,我很乐意澄清。
解决方案
推荐阅读
- javascript - JavaScript:检测网页中的用户手动刷新请求
- sql - 获取 CREATE FUNCTION 必须是批处理中的唯一语句 - SQLServer
- vb.net - 如何使用 vb.net 将 X 轴设置为等于 excel 中的预定范围
- python - 是否有 Keras 函数来获取编译选项?
- ios - GIF 图像不显示在 iPhone 上
- python - Google pubsub 延迟确认
- .htaccess - Vue:如何强制 www
- groovy - 使用嵌套键从 groovy 中的嵌套映射中获取值
- postgresql - 使用其他数据库中的变量执行函数
- rest - 具有完全限定 URL 的 RESTful 服务调用