如何利用文件名 hash 做长效缓存(Long-term Caching)?
浏览器靠文件名区分资源版本。内容哈希能让「内容没变的文件文件名不变 → 走强缓存;变了才更新」。
[hash]:每次构建都变(整个构建共享),不推荐单独用[chunkhash]:按 chunk 变,同一 chunk 内容不变则不变[contenthash](最佳):按文件内容算,最精确地隔离变化
output: { filename: '[name].[contenthash:8].js' }配合:
- 把第三方库用
splitChunks抽成vendors,它内容基本不变 → 永远命中缓存 - 服务器对带 hash 的资源设
Cache-Control: max-age=31536000, immutable index.html不哈希、不缓存,保证能拿到最新的资源引用