来看看两道概念题:
问一:
chunk,bundle,module的区别?
chunk指的是经过webpack转化处理后的代码片段;
bundle指的是经给webpack处理后输出的文件,统称 bundle文件;
module: webpack中万物皆模块。
问二:
hash ,chunkhash, contenthash的区别?
hash 是代码发生变化,整个项目的hash就会发生变化;但是仅有个别文件发生变化,显然缓存就没有了意义。
chunkhash 是根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值;
如下图,当一个公共样式库需要引入到两个js文件中,此时使用chunkhash,若公共样式库代码发生改变,a和b生成对应的bundle文件的
hash值也发生变化,但a和b文件没有代码改变,不利于缓存。
contenthash 是自身内容(模块)发生变化,才会更新;该占位符存在与上面两者之上,解决了上面两者的问题。