https://medium.com/webpack/predictable-long-term-caching-with-webpack-d3eee1d3fa31
默认情况下运行 yarn build 需要产生 6 个文件:
common~main.[hash].jsmain.[hash].jsmodule1~main.[hash].jsmodule2~main.[hash].jsruntime~main.[hash].jsvendors~main.[hash].js
common~main.ad17d93b.js 201 bytes 0 [emitted] common~main
main.34668304.js 170 bytes 1 [emitted] main
module1~main.f7321cac.js 212 bytes 2 [emitted] module1~main
module2~main.aa4eece8.js 214 bytes 3 [emitted] module2~main
runtime~main.ac72a21f.js 1.42 KiB 4 [emitted] runtime~main
vendors~main.b14d99a1.js 69.4 KiB 5 [emitted] vendors~main在修改 common/ module-1/ module-2文件夹下的文件时,其它 chunk 的 hash 没有变化。
比如,在修改 common/index.js 的文件内容后,输出下面的文件 output:
import { sample as lodashSample } from 'lodash'
export function sample(arr) {
-- console.log('common!!!')
++ console.log('common!')
return lodashSample(arr)
} common~main.24689b5d.js 199 bytes 0 [emitted] common~main
main.34668304.js 170 bytes 1 [emitted] main
module1~main.f7321cac.js 212 bytes 2 [emitted] module1~main
module2~main.aa4eece8.js 214 bytes 3 [emitted] module2~main
runtime~main.ac72a21f.js 1.42 KiB 4 [emitted] runtime~main
vendors~main.b14d99a1.js 69.4 KiB 5 [emitted] vendors~main其中,只有 common~main 这个 chunk 的 hash 发生了变化。