创建反应应用程序 js 块的服务工作者加载错误



我正在使用创建反应应用程序和服务工作者。但是,有时当我构建新版本时,仍然从服务工作者加载了一些 js 块,这是不应该加载的?它不是加载js文件,而是实际加载一个html。清除缓存并重新加载页面后,一切正常。

  1. 我没有在 Nginx 上缓存服务工作者。每次刷新页面时,服务工作进程文件都是从服务器加载的。

  2. 我正在使用反应加载

如何解决此问题?任何帮助将不胜感激。

正如您react-loadable提到的,我假设您在应用程序中使用异步组件加载。如果这是真的,你可能面临和我一样的问题。

每当交付新版本时,都会安装新的服务工作进程。默认情况下,在会话完成(所有选项卡/浏览器关闭(之前,它不会被激活。为了立即激活它,skipWaiting参数使用并设置sw-precache-webpack-plugincreate-react-appwebpack 配置。所以现在,旧的服务工作进程和所有相关的缓存文件将被删除,因为新的服务工作进程正在承担责任。这在大多数情况下很好,但在我们处理异步组件加载时就不行了。在这种情况下,我们不希望删除旧块,因为我们的应用程序引用了它们。为此,我们需要在sw-precache-webpack-plugin中设置skipWaiting: false.

更多信息可以在此线程中找到。

最新更新