webpack优化系列(6)-code split

代码分割

将我们打包输出的一个文件分割为多个文件。(并行加载,速度更快 、按需加载)

主要针对于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('文件加载失败')
})

系列相关


版权声明:本文为ysj1218原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。