在服务工作者文件中使用ESM(导入/导出)

汤玛斯·许贝尔鲍尔

我正在尝试使用也是ESM模块的服务工作者文件。

register方法有一个额外的参数,它接受一个options对象,对象的type字段的有效值似乎是classicand module,但是当我使用时:

navigator.serviceWorker.register('worker.js', { type: 'module' });
// `worker.mjs` doesn't work either
// The file exists in both cases!

我收到一个未指定的DOMException消息,在Chrome中没有任何消息。

type通过阅读规格,我弄清楚了有效值是什么,特别是这样:

https://html.spec.whatwg.org/multipage/workers.html#workertype

在我看来,我的代码是有效的。

作为健全性检查,我还尝试过明确设置typeclassic,然后服务人员注册会通过。如果将其设置为无效值,则会TypeError告诉我,所以这并不是浏览器尚未意识到type: module它被视为特殊情况,它只会抛出一个不DOMException带任何消息的消息。

type是否正确使用该字段?现在还为时尚早,浏览器不支持吗?

汤玛斯·许贝尔鲍尔

真傻!DOMException记录错误对象时Chrome将仅打印到控制台中(甚至不可扩展),并且Object.keys在该对象实例上返回[],但是当我专门打印时e.message,罪魁祸首被揭示:

尚未实现RegistrationOptions中的'module'类型。有关详细信息,请参见https://crbug.com/824647

没被Chrome逗乐。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从src导入js文件到公用文件夹/服务工作者文件

未找到reactjs服务工作者.license文件

需要有关在域中使用多服务工作者的信息

服务工作者缓存与 VuexPersistence

如何卸载服务工作者?

notificationclick事件服务工作者

服务工作者中的XMLHttpRequest

如何精确添加“允许服务工作者”以在上层文件夹中注册服务工作者范围

PWA-服务工作者(反应)如何工作?

服务工作者不在离线工作

服务工作者,它是如何工作的?

使用Workbox CLI及其服务工作者生成器的PWA无法离线工作

使用 PWA 服务工作者在离线模式下保存/提供 Web 服务

通常,服务工作者应预缓存哪些文件?

将版本/哈希添加到服务工作者文件后会发生什么?

服务工作者不会从缓存中返回文件

服务工作者缓存文件但不离线加载

React PWA:如何正确设置清单文件并注册服务工作者

服务工作者将文件从API调用添加到预缓存

持久服务工作者和缓存 HTML 和 PNG 文件

从main.js文件或index.html调用服务工作者是否正确?

如何在Google Devtools中强制更新服务工作者文件?

将服务工作者添加到startup.cs文件

如何修改服务工作者文件而不用 ng build --prod 覆盖它

服务工作者在反应中缓存的路由

WebView:以编程方式清除服务工作者缓存

Firebase Web推送通知服务工作者问题

“未定义窗口”服务工作者

服务工作者在Firefox上导致CORS问题