【问题标题】:How to create Web Worker in a SvelteKit app on Vercel?如何在 Vercel 上的 SvelteKit 应用程序中创建 Web Worker?
【发布时间】:2021-08-31 19:48:46
【问题描述】:

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

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?

【问题讨论】:

    标签: javascript web-worker svelte vercel sveltekit


    【解决方案1】:

    或者,

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

    来自vite's documentation

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        我认为你需要做的是替换

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

        import workerURL from './lib/game/runs_thread.js?url';
        //...
        new Worker(workerURL)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-26
          • 1970-01-01
          • 2019-12-06
          • 2021-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多