gpt4 book ai didi

reactjs - Gatsby 中的服务 worker (react.js)

转载 作者:行者123 更新时间:2023-12-04 15:29:15 27 4
gpt4 key购买 nike

我正在尝试为 gatsby 应用程序设置自定义服务工作线程。我的应用程序的构建过程大约需要 7 分钟,而且 service worker 仅在生产模式下注册,所以我无法快速开发。添加例如新的 console.log 并检查它需要几分钟。我能以某种方式在开发模式下测试 Service Worker 吗?

最佳答案

如果您将 Gatsby 的 API 用于 Service Worker,则需要在 gatsby-browser.js 中导出函数 registerServiceWorker。问题在于,当您运行 gatsby develop 而不是在浏览器中输入网站时,该函数是在构建过程中触发的。这就是为什么它不会在您的浏览器中(它需要工作的地方)注册 Service Worker 的原因。

要解决您在本地工作时的问题,请在每次在浏览器中输入网站时自行调用导出函数 registerServiceWorker(gatsby-browser 中的 onClientEntry .js).

我建议也将它包装在一个 if 语句中,以便仅在您在本地使用它时调用它。我的 .env 文件中有一个变量 ENABLE_LOCAL_SW = true

// gatsby-browser.js

export const onClientEntry = () => {
if (process.env.ENABLE_LOCAL_SW) {
registerServiceWorker();
}
};

export const registerServiceWorker = () => {
if (typeof window !== 'undefined') {
// Do magic
}
}

关于reactjs - Gatsby 中的服务 worker (react.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61598138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com