admin管理员组文章数量:1292872
I've created a SvelteKit webapp that works great on my desktop in my local environment. I launch the browser/webserver with:
npm run dev -- --open
Now I've just deployed to Vercel. Everything works great, except the JavaScript mand I use to launch my Web Worker gives a 404 error in the browser console:
new Worker('./lib/game/runs_thread.js')
Sure enough, if I copy /lib/game/runs_thread.js
into my browser after my domain name, I get a 404 error. Where is my runs_thread.js
and how can I launch my Worker?
I've created a SvelteKit webapp that works great on my desktop in my local environment. I launch the browser/webserver with:
npm run dev -- --open
Now I've just deployed to Vercel. Everything works great, except the JavaScript mand I use to launch my Web Worker gives a 404 error in the browser console:
new Worker('./lib/game/runs_thread.js')
Sure enough, if I copy /lib/game/runs_thread.js
into my browser after my domain name, I get a 404 error. Where is my runs_thread.js
and how can I launch my Worker?
3 Answers
Reset to default 6I think what you need to do is replace
new Worker('./lib/game/runs_thread.js')
with
import workerURL from './lib/game/runs_thread.js?url';
//...
new Worker(workerURL)
Alternatively,
import MyWorker from "./path/to/worker.js?worker"
new MyWorker()
From vite's documentation
// someComponent.svelte or +page.svelte or +layout.svelte
onMount(async () => { // must be "async" because of the dynamic import. see "await import" below
if (window.Worker) { // "window" is available because we're in "onMount"
// Vite dyn import: https://vitejs.dev/guide/assets.html#importing-script-as-a-worker
const MyWorker = await import('$lib/workers/my_worker.js?worker');
const myWorker = new MyWorker.default();
myWorker.postMessage('do-this');
myWorker.onmessage = function (e) {
console.log(e.data);
};
}
})
// $lib/workers/my_worker.js
self.onmessage = (e) => {
if (e.data === 'do-this') {
doThis();
postMessage('job-done');
}
};
function doThis(){
// doing something
}
本文标签: javascriptHow to create Web Worker in a SvelteKit app on VercelStack Overflow
版权声明:本文标题:javascript - How to create Web Worker in a SvelteKit app on Vercel? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741564777a2385660.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论