1

我创建了一个 SvelteKit webapp,它在我的本地环境中的桌面上运行良好。我启动浏览器/网络服务器:

npm run dev -- --open

现在我刚刚部署到 Vercel。一切都很好,除了我用来启动我的 Web Worker 的 JavaScript 命令在浏览器控制台中给出了 404 错误:

new Worker('./lib/game/runs_thread.js')

果然,如果我/lib/game/runs_thread.js在域名后复制到浏览器中,我会收到 404 错误。我在哪里runs_thread.js以及如何启动我的 Worker?

4

3 回答 3

2

我认为你需要做的是更换

new Worker('./lib/game/runs_thread.js')

import workerURL from './lib/game/runs_thread.js?url';
//...
new Worker(workerURL)
于 2021-06-18T13:51:26.820 回答
1

您似乎想在开发模式下使用服务人员,但是文档指出:

“因为它需要捆绑(因为浏览器还不支持在这种情况下导入),并且依赖于客户端应用程序的构建清单,所以服务人员只在生产构建中工作,而不是在开发中。要在本地测试它,使用 svelte-kit 预览。”

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

于 2021-09-05T09:39:01.150 回答
1

或者,

import MyWorker from "./path/to/worker.js?worker"
new MyWorker()

来自vite 的文档

于 2021-10-12T03:45:26.080 回答