代码分割
将我们打包输出的一个文件分割为多个文件。(并行加载,速度更快 、按需加载)
主要针对于js代码。
方式一:通过修改entry配置多入口,有几个入口输出有几个bundle
entry: {
index: './src/js/index.js',
test: './src/js/test.js'
}
缺点:修改不太灵活,要改配置。
方式二:optimization
1. 单入口应用中
可以将node_modules中代码单独打包成一个chunk最终输出(将第三方的东西打包成一个chunk,自己本身的代码打包成一个chunk)
2. 多入口应用中
自动分析多入口chunk中有没有公共的文件(公共依赖),如果有会单独打包成一个chunk
optimization: {
splitChunks: {
chunks: 'all'
}
}
方式三:import动态导入语法,能将某个文件单独打包(通过js代码让某个文件被单独打包成一个chunk) (纯粹的单入口)
// 在index.js文件中通过import动态引入test.js文件:
import(/* webpackChunkName: 'test' */'./test')
.then(({multi, sum}) => {
console.log('res=', multi(1, 2), sum(3, 5))
}).catch(() => {
console.log('文件加载失败')
})