webpack3 的async chunk 是什么意思
下面这段文档,看了半天,没理解说的是啥意思
这个和sync在浏览器的加载表现上有啥区别呢?
async: boolean|string,
// 如果设置为true
,一个异步的 公共chunk 会作为options.name
的子模块,和options.chunks
的兄弟模块被创建。
// 它会与options.chunks
并行被加载。
// Instead of usingoption.filename
, it is possible to change the name of the output file by providing
// the desired string here instead oftrue
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
带有async的配置是提取async chunk中公用模块的,注意是async模块中的公用模块(实验得出的结论,不一定准)。
假如我有两个异步路由a.js和b.js,它们都用了c.js,正常情况下是会将c打包两遍,出两个包a.chunk和b.chunk,配置了async,设置合理规则(minChunks)后,会单独的打包出c.chunk,然后a和b只做对c的请求,而不打包c的代码。
async在webpack中的概念和html中的不一样。script标签的异步也是会在页面解析的时候下载的,但是异步执行(相对于html解析),webpack的async就是正常的满足代码逻辑的时候下载并执行(进入页面时,如果没有触发逻辑,则根本不存在,是相对于业务逻辑)。
参考:Webpack 大法之 Code Splitting