简单的Web Worker无法在Firefox 106.0.5上的SvelteKit中工作



在我的主文件中,我有

const loadWorker = async () => {
const SyncWorker = await import("$lib/canvas.worker?worker");
syncWorker = new SyncWorker.default();
syncWorker?.postMessage({});
};

然后在我的卸载中,我有

onMount(() => {
console.log("Canvas: mounted");
loadWorker();
});

然后在我的canvas.worker.ts文件中,我有一个简单的

onmessage = () => {
console.log("Hello from the worker!");
};
export {};

这个消息在Chrome中打印成功,但在firefox中我得到的只是

SyntaxError:导入声明只能出现在模块的顶层

这是因为工作程序存储在我的本地系统上,也许有一个特殊的标志允许作为工作程序加载系统文件(因为这似乎是一个安全问题(?Firefox文档说我的浏览器应该支持工人。

好吧,我应该更好地阅读文档。

服务人员只在生产构建中工作,而不在开发中工作。要在本地进行测试,请使用vite预览

https://kit.svelte.dev/docs/service-workers

或者在我的情况下;npm运行构建&npm运行预览";工作。

最新更新