Web应用程序中的Reactjs服务工作者

时间:2018-06-27 08:07:33

标签: reactjs browser service-worker

我是Web应用程序开发的新手,请原谅我的问题。

我刚刚注意到,我使用create-react-app创建的网络应用已安装了service worker,并将其上传到服务器,当我从本地Chrome浏览器打开该应用后,该应用不会在构建后重新加载,即使我多次重新加载服务器上的节点,然后重新加载Chrome浏览器。

我从应用程序中删除了服务人员,现在Chrome始终可以获取新应用程序。

我该如何“强迫”服务工作者在自己的应用程序中进行自我更新,以便每次将其推送到服务器时始终获得新的构建应用程序?

如果我必须添加此Cache-Control: no-cache或其他缓存机制https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control,那么服务工作者的用途是什么?

1 个答案:

答案 0 :(得分:0)

如果处于Dev模式,理想的解决方案将不允许安装Service worker。对于您的开发工作流,您始终希望您的新代码没有服务人员的缓存副作用。您可以通过-

if ( process.env.NODE_ENV === "PRODUCTION") {
  // service worker init code
}

还要确保分别为您的prod和dev脚本设置NODE_ENV = PRODUCTION或NODE_ENV = DEVELOPMENT。

希望这会有所帮助!

更新

一些可以帮助您实现sw生命周期的项目-

  1. sw-toolbox
  2. offline-plugin