是这样的,我的项目使用了 webpack 的长期缓存策略。该项目是多页应用,每次打包生成几个页面,但是 vendors 和 manifest 模块是共用的,按理说,只要不修改这两个模块里的内容,他们的 hash 都不会改变的。
问题来了,当 A 页面上线之后,我重新打包生成了一个 B 页面,vendors 和 manifest 的 hash 都没有变化,但是 B 页面上线之后,A 页面却报错了。报错原因是,A 页面不能正确兼容后打包的 manifest.js 里面的代码。虽然 hash 没有变,但是里面的内容却改变了。
按照官方的说法,这个 manifest.js 存放的是运行时相关代码,我一直认为这里的代码是长期不变的,后来用对比软件对比发现,一旦别的模块有调整,这里的代码也会有细微的变化。
有没有什么办法,让 manifest.js 的 hash 也随着内容而改变呢?我 Google 了一下,有人说这是 webpack-md5-hash这个插件的 bug,但是现在还没有人给出有用的解决方案。或者说,是我的使用方式有问题?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.