【问题标题】:Browserify bundlesBrowserify 捆绑包
【发布时间】:2017-12-21 16:38:07
【问题描述】:

每次我们发布使用 Browserify 捆绑的新版本软件时,我们发现我们需要要求用户使用常规方法 CTRL+F5 或深入浏览器设置来清除缓存。当有一千个左右的用户时,这并不理想。我们正在努力寻找一种方法,也许可以解决这个问题。我对各种选择持开放态度。

我们的项目基于 ReactJS,因此在浏览器中运行并通过 RESTful API 连接到后端服务。我们确实跟踪加载了哪个版本,这在控制台中是可见的。使用版本号,我们可以在两台不同的机器上比较一个用户正在运行最新版本,而其他人可能没有。

代码被捆绑到两个单独的文件中,我觉得这是我们应该寻找的地方。

【问题讨论】:

  • 每次改文件名,比如加个版本号。

标签: javascript reactjs caching browserify browser-cache


【解决方案1】:

您需要在每个新版本上更改文件名。 您可以添加文件的哈希值。

查看md5ify 将其添加到您的项目构建中。

如果您自己实现此功能,请确保还在您的 index.html 文件中加载正确的文件名。

编辑:

要自动加载正确的文件,您需要在主 html 中有一个占位符。

那么您需要一个如下所示的manifest.json 文件:

{
 "main.js": "main.[HASH].js"
}

这必须在捆绑后自动创建。 现在,您可以通过在 manifest 文件中查找来将占位符替换为正确的资产。

您要么必须为此编写自己的脚本,要么将gulpbrowserify 一起使用。

另一个解决方案是webpack

【讨论】:

  • 这很有帮助,但我需要捆绑程序能够为我将生成的文件名插入到 index.html 中。这不是我们真正希望每次都手动执行的任务。
  • 更新了答案。由于我不知道您的确切设置,您可以将其用作指导。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多