如何使用Webpack代码拆分处理部署?

Mar*_*ska 19 javascript deployment reactjs webpack code-splitting

这是一个意外的问题,我遇到了Webpack代码在野外分裂:想象一下这种情况:

  1. 用户加载带有Webpack代码拆分的React应用程序,并加载一些包块
  2. 发生部署,并且更新用户可能从服务器接收的任何未来块的内容(注意:在部署期间,先前的块在服务器上被删除)
  3. 用户单击链接并加载新路由,以触发更多捆绑块加载.除了这些新的块与用户的浏览器已经加载的那些不兼容,并且应用程序因运行时错误而中断

如何防止这种情况?

一种可能的解决方案是维护多个版本化的块集,但我想知道大型应用程序是否使用了更简单的解决方案.

如果使用了preload-webpack-plugin,则可以预取所有块,但它们只会在短时间内保持缓存(在Chrome中为5分钟).

Jon*_*Jon 0

如果块文件名被散列,旧的路由不会链接到旧的散列块(大概仍然可用)并加载所有内容吗?

  • 但在这种情况下,部署将删除旧的哈希块,因此它们将不再可用。 (3认同)