1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【每日一題NO.86】webpack打包文件時生成hash的機(jī)制是什么?

        共 1057字,需瀏覽 3分鐘

         ·

        2021-11-14 15:05

        webpack hash 分類

        1、輸出的結(jié)果全部使用 hash 的情況

        每個文件都具有相同的 hash 值,因?yàn)?hash 是基于我們使用的所有源文件生成的。

        如果重新運(yùn)行該構(gòu)建而不更改任何內(nèi)容,則生成的 hash 將保持不變。

        如果僅僅編輯一個文件,則 hash 值將會發(fā)生變化,并且所有生成捆綁的名稱中都會包含此新的 hash 值

        2、輸出的結(jié)果全部使用 chunkhash 的情況

        chunkhash 是根據(jù)不同的入口進(jìn)行依賴文件解析,構(gòu)建對應(yīng)的 chunk,生成對應(yīng)的 hash 值

        在使用上來說:我們把一些公共庫和程序入口文件區(qū)分開來,單獨(dú)打包構(gòu)建,接著可以采用 chunkhash 方式來生成 hash 值,那么只要我們不改動公共庫的代碼,就可以保證其 hash 值不受影響,這樣也起到緩存的作用。

        3、輸出的結(jié)果全部使用 contenthash 的情況

        每個生成的文件名稱都有一個唯一的 hash 值,該哈希值是根據(jù)該文件的內(nèi)容計(jì)算得出的。

        當(dāng)要構(gòu)建的文件內(nèi)容發(fā)生改變的時候,就會生成新的 hash 值,且該文件的改變并不會影響和它同一個模塊下的其他文件。

        hash被修改的條件

        綜上,我們可以看出,如果使用 hash,并不是每次都會重新生成新的 hash,需要看具體使用的是哪種 hash 策略。

        hash 是跟整個項(xiàng)目的構(gòu)建相關(guān),只要項(xiàng)目里有文件更改,整個項(xiàng)目構(gòu)建的 hash 值都會更改,并且全部文件都共用相同的 hash 值。

        chunkhash 是根據(jù)不同的入口進(jìn)行依賴文件解析,構(gòu)建對應(yīng)的 chunk 生成相應(yīng)的 hash 值。只有被修改過的 chunk 在重新構(gòu)建之后才會生成新的 hash 值,不會影響其它的 chunk。

        contenthash 是跟每個生成文件有關(guān),每個文件都有一個唯一的 hash 值。當(dāng)要構(gòu)建的文件內(nèi)容發(fā)生改變時,就會生成新的 hash 值,并且該文件的改變并不會影響和它同一模塊下的其他文件。

        所有《每日一題》的 知識大綱索引腦圖 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
        你也可以點(diǎn)擊文末的 “閱讀原文” 快速跳轉(zhuǎn)



        用一個十年拉扯自己長大,
        那時未來已達(dá),星辰開花。
        瀏覽 225
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产美女被遭强高潮免费观看视频网站 | 日本三级做爰在线播放 | 午夜成人短视频 | 偷拍自拍成人电影 | 夜夜看av | 女人脱精光直播视频免费看 | 九色影院 | 久久99国产精品二区护士 | 三上悠亚伦理片 | 久久久久成人电影 |