前端小白白啦 2022-12-13 08:31 采纳率: 37.1%
浏览 21
已结题

webpack-optimization.runtimeChunk多出的文件干什么用的,有什么好处

webpack作用不理解 optimization.runtimeChunk

optimization.runtimeChunk的作用不理解 单独分出的文件作用

module.exports = {
  //...
  optimization: {
    runtimeChunk: {
      name: (entrypoint) => `runtime~${entrypoint.name}`,
    },
  },
};

https://webpack.docschina.org/configuration/optimization/#optimizationruntimechunk

img

配置的作用

  • 写回答

1条回答 默认 最新

  • Absolute小白 2022-12-13 11:21
    关注

    runtimeChunk作用是为了线上更新版本时,充分利用浏览器缓存,使用户感知的影响到最低。
    设置runtimeChunk是吧包含chunks 映射关系的 list单独从 app.js里提取出来,因为每一个 chunk 的 id 基本都是基于内容 hash 出来的,所以每次改动都会影响它,如果不将它提取出来的话,等于app.js每次都会改变。缓存就失效了。设置runtimeChunk之后,webpack就会生成一个个runtime~xxx.js的文件。
    然后每次更改所谓的运行时代码文件时,打包构建时app.js的hash值是不会改变的。如果每次项目更新都会更改app.js的hash值,那么用户端浏览器每次都需要重新加载变化的app.js,如果项目大切优化分包没做好的话会导致第一次加载很耗时,导致用户体验变差。现在设置了runtimeChunk,就解决了这样的问题。所以这样做的目的是避免文件的频繁变更导致浏览器缓存失效,所以其是更好的利用缓存。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 修改了问题 12月13日
  • 创建了问题 12月13日