在webpack
进行打包的时候遇到的一些?困惑:
webpack
打包提供了:
通过
commonChunksPlugin
插件可以将多个entry chunk
中复用的module
抽离为公共的chunk
;通过
require.ensure
这个api
去自定义code spiltting
的分割点,webpack
完成分隔chunk
的功能。
现在想到了这样一个问题:
在lib
文件夹下是基础js
库,例如loadsh
等等,在components
文件夹下是组件库
,例如dialog
等等。
现在一共有9个页面,9个页面都使用到了lib
中的基础库,在从第4个页面开始才用到了components
组件库。
因为webpack
是分析不同js
文件的相互依赖,然后进行打包的。因此在我使用了commonChunksPlugin
后,会将lib
中的基础js
库和components
中的组件库全部打包到一个文件中。
现在我想达到的效果就是,将lib
中的基础js
库打包到common chunk
当中,入口页面一加载的时候就加载这个common chunk
, 然后将components
中的组件库另外单独打包到一个components
文件当中,当加载到第4个页面时,才会加载这个components
文件,而不是像之前的初始页面一加载的时候就会将components
也加载进来。
所以这种需求的话webpack
应该如何配置呢?还是就没法做到,是否是因为webpack
的打包机制所决定的。
有两种方式:
1. 多个 Common Chunk (lib 一个、component 一个)
相应的页面:
2. lib 为 Common,component 动态加载
异步加载:
相应的页面
附录(详细的 Demo 源码)
https://github.com/helloyou20...
https://github.com/helloyou20...