我有一个组件库
index.ts 入口文件
a.jsx 组件
b.jsx
c.jsx
....
在入口文件中通过require.context('./', false, //.jsx$//, 'lazy') 方式异步引入文件, 这样每一个文件就分开打包,按需加载了。
但是现在存在文件就是 如果我有的组件很小只有1kb, 2kb,3kb这种小组件的我希望他能合并在一起,避免http请求过多? 我希望文件能合并到200kb左右一个, 又能异步加载,该如何解决?
我有一个组件库
index.ts 入口文件
a.jsx 组件
b.jsx
c.jsx
....
在入口文件中通过require.context('./', false, //.jsx$//, 'lazy') 方式异步引入文件, 这样每一个文件就分开打包,按需加载了。
但是现在存在文件就是 如果我有的组件很小只有1kb, 2kb,3kb这种小组件的我希望他能合并在一起,避免http请求过多? 我希望文件能合并到200kb左右一个, 又能异步加载,该如何解决?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
在
Webpack
中,异步引入的文件默认情况下会根据模块的依赖关系和配置进行打包。如果你希望根据文件大小来决定是否将多个小文件合并在一起打包,你可以通过配置optimization.splitChunks
选项来实现这个需求。optimization.splitChunks
是Webpack 4
中引入的一个特性,它允许你自定义代码分割的策略。你可以设置一个最小文件大小(minSize)
和最大文件大小(maxSize)
,以及一个合并文件的阈值(maxAsyncRequests)
,来控制何时将多个小文件合并成一个chunk
。以下是一个配置示例,展示了如何根据文件大小来合并
chunk
:在这个配置中,
minSize
设置为30KB
,这意味着如果一个chunk
的大小小于30KB
,Webpack
会尝试将其与其他chunk
合并。maxSize
设置为0
,表示没有最大文件大小限制。maxAsyncRequests
和maxInitialRequests
分别控制并发请求和初始请求的最大数量。