Svelte: Web worker in without SvelteKit



我正在努力寻找如何在不使用SvelteKit的Svelte应用程序中合并web工作者的信息(我发现了许多如何使用SvelteKit的例子)。基本上,我认为我有两个选择:

  1. 将它们直接添加到源代码中(app.svelte),因此编译器将拾取并捆绑它(至少我认为他会这样做)。我还没有找到任何代码样本。
  2. 链接我的index.html中的web worker javascript文件,并将其手动放到公共文件夹中。

我假设是1。是更优雅的方式,但我还没有找到任何明确的最佳实践/指导方针来实现它。

那么什么是最好的选择,有没有我可以重用的例子?

我不明白为什么需要在选项2中手动将其放置在公共文件夹中。如果你有一个好的构建工具,它应该处理它,我认为最好保持苗条的文件作为组件,而不是混合一些一般的web工作者代码为您的应用程序在那里。如果你的整个网站只有一个大的应用组件,那么把它放在那里可能是有意义的(但是为什么不在这种情况下使用SvelteKit呢?)

选项1

如果您正在使用vite作为构建工具,这真的很简洁,顺便说一句,您只需在脚本标记中使用以下语法初始化它(文档在这里):

const worker = new Worker(new URL('./worker.js', import.meta.url));

如果您有其他构建工具,您可能需要稍微更改一下语法。基本语法是(文档在这里):

const worker = new Worker('./worker.js');

选项2

只需在main.js文件中放入同一行即可。

最新更新