vue的chunkhash是webpack的一個(gè)優(yōu)化功能,它可以生成一個(gè)唯一的散列值來(lái)標(biāo)識(shí)每個(gè)打包后的模塊。其中,chunkhash與hash的區(qū)別是,chunkhash只會(huì)針對(duì)每個(gè)不同的chunk生成不同的散列值,而不是整個(gè)打包文件。
使用chunkhash可以做到兩方面的優(yōu)化:
- 文件緩存:由于每個(gè)模塊都有唯一的散列值,如果文件內(nèi)容沒有改變,那么散列值也不會(huì)改變,從而可以使用瀏覽器緩存來(lái)加速訪問(wèn)。
- 避免文件重復(fù)加載:當(dāng)多個(gè)頁(yè)面加載相同的代碼時(shí),使用chunkhash可以避免重復(fù)加載,從而提高頁(yè)面打開速度。
下面是使用chunkhash的一個(gè)示例:
const path = require('path');
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[chunkhash].js', // 這里使用chunkhash
chunkFilename: '[name].[chunkhash].js'
}
};
在上面的例子中,webpack打包后的文件名會(huì)在其后面添加一個(gè)唯一的hash值。這個(gè)散列值是通過(guò)對(duì)代碼進(jìn)行摘要生成,只要代碼內(nèi)容沒有改變,就不會(huì)變化。這樣,瀏覽器就可以緩存文件,并且多個(gè)頁(yè)面加載同一個(gè)模塊時(shí),可以避免重復(fù)加載,提高頁(yè)面性能。