項目發佈時,爲了解決緩存,須要進行md5簽名,這時候就須要用到 hash
和 chunkhash
等。css
問題一:hash問題webpack
hash
對js和css進行簽名時,每一次hash值都不同,致使沒法利用緩存hash
字段是根據每次編譯compilation的內容計算所得,也能夠理解爲項目整體文件的hash值,而不是針對每一個具體文件的。(因此每一次編譯都會有一個新的hash,並不適用)chunkhash
(js和css要使用chunkhash), chunkhash
的話每個js的模塊對應的值是不一樣的(根據js裏的不一樣內容進行生成)問題二:圖片和字體圖標的chunkhash問題web
chunkhash
,可是又有了新的問題-img和font等資源中,使用 chunkhash
會報錯chunkhash
只適用於js和css,img中是沒有這種東西的,仍然須要用到 hash
(這個hash有點區別,每個資源自己有本身的hash)問題三:chunkhash重複問題算法
chunkhash
是相同的,致使沒法區分css和js的更新,以下 index2-ddcf83c3b574d7c94a42.css index2-ddcf83c3b574d7c94a42.js
ExtractTextPlugin
插件引入的,這時候可使用到這個插件提供的 contenthash
,以下(使用後css就有獨立於js外的指紋了),//提取css文件 new ExtractTextPlugin({ filename:'css/[name].[chunkhash:8].css' //提取chunkhash8位碼 })
chunkhash
變更(緣由估計是webpack內置的算法變爲了只計算js chunk),因此css請務必使用 contenthash
,不然修改後沒法生成新的簽名,而是會覆蓋之前的資源
轉:http://blog.csdn.net/sinat_17775997/article/details/61924901緩存