webpack chunkhash
- 錯誤
output: {
filename: '[name].[chunkhash ].js',
path: path.resolve(__dirname, buildDir)
}
編譯不了
- 為什么用chunkhash
使用hash對js和css進行簽名時,每一次hash值都不一樣,導致無法利用緩存,原因是因為,hash字段是根據(jù)每次編譯compilation的內(nèi)容計算所得,也可以理解為項目總體文件的hash值,而不是針對每個具體文件的。而用chunkhash,每一個js的模塊對應的值是不同的(根據(jù)js里的不同內(nèi)容進行生成),所以在項目中所有的文件都準備用chunkhash,但是又有了新的問題-img和font等資源中,使用chunkhash會報錯 - 解決:因為chunkhash只適用于js和css,img中是沒有這種東西的。分別設置處理filename
output: {
filename: '[name].[hash].js',
path: path.resolve(__dirname, buildDir)
},
plugins:[
//保證不管再添加任何新的本地依賴,對于每次構建,vendor hash 都應該保持一致
new webpack.HashedModuleIdsPlugin(),
//js
new webpack.optimize.CommonsChunkPlugin({
name: "vendor" ,
filename:"[name].[chunkhash].js"
}),
//css
new ExtractTextPlugin("[name].[chunkhash].css")
]