V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Biwood
V2EX  ›  问与答

关于 webpack 长期缓存中的 manifest.js 的问题

  •  
  •   Biwood · Jul 20, 2017 · 3918 views
    This topic created in 3208 days ago, the information mentioned may be changed or developed.

    是这样的,我的项目使用了 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,但是现在还没有人给出有用的解决方案。或者说,是我的使用方式有问题?

    8 replies    2018-10-12 19:41:52 +08:00
    Tonni
        1
    Tonni  
       Jul 20, 2017
    这个问题是 Webpack 自身的问题,官方 repo 里面的 issue 已经很久了,priority 也是很高,但是一直没有修复,建议楼主尝试下 issue 里面提到的解决方案试试: https://github.com/webpack/webpack/issues/1315
    Biwood
        2
    Biwood  
    OP
       Jul 20, 2017
    @Tonni 你发的这个 issue 其实是另外一个问题,按照官方文档的教程,使用 webpack/lib/HashedModuleIdsPlugin 配合 webpack-md5-hash 基本解决了,我是在使用了这两个插件之后产生的新的问题
    ChefIsAwesome
        3
    ChefIsAwesome  
       Jul 20, 2017 via Android
    处理静态文件缓存的手段自古就有。都是有动手能力的程序员,有些时候不用那么依赖某个工具自带的功能吧。
    Biwood
        4
    Biwood  
    OP
       Jul 20, 2017
    @ChefIsAwesome 使用工具当然不仅仅为了处理缓存问题,可以说缓存问题是最后才考虑的,看中的是工具提供的一整套开发流程,而且参与人数众多,可以找到很多方便的插件
    isbase
        5
    isbase  
    PRO
       Jul 20, 2017 via Android
    manifest.[chunkhash].js
    Biwood
        6
    Biwood  
    OP
       Jul 26, 2017
    去掉 webpack-md5-hash 这个插件问题就解决了,结帖
    AzraelAdam
        7
    AzraelAdam  
       Oct 11, 2018
    请问楼主是怎么实现的增量替换的模式,能把 webpack 的配置发出来参考一下吗
    Biwood
        8
    Biwood  
    OP
       Oct 12, 2018
    @AzraelAdam 没太懂你所说的增量替换是指替换什么,配置我没有存下来,不方便拿取,基本都是参照官方文档来写的没有什么新奇之处
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2553 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.