美文网首页
11-webpack4.x 提取公共代码

11-webpack4.x 提取公共代码

作者: 崩鲨卡拉卡 | 来源:发表于2019-02-01 14:53 被阅读0次
当一部分代码需要反复被用到,反复请求浪费资源,将公共代码 抽离,需要时读取缓存即可
先上图:

1-抽离脚本的公共代码:

代码抽离.jpg

在上例中 链各个入口文件,都在顶部 import了 a.js 和 b.js,为了节省资源,将共同的代码抽离缓存,提升性能。

/index.js
import './a';
import './b';
console.log('index.js')

-------------------------------  这是两个入口文件
/other.js
import './a';
import './b';
console.log('other.js')

module.export={}里面配置,optimization{},代码如下。

module.exports={
    mode:'production',
    optimization: {
        splitChunks: {  //分割代码块

            cacheGroups: {  //缓存组 缓存公共代码

                commons: {  //公共模块 
                    name: "commons",
                    chunks: "initial",  //入口处开始提取代码
                    minSize:0,      //代码最小多大,进行抽离
                    minChunks:2,    //代码复 2 次以上的抽离
                }
            }
        }
    },

重新打包后在dist文件夹得到commons.js文件,在新的打包文件中,已经完成了公共代码抽离

代码抽离2.jpg

2-使用vendor 抽离公共引入模块:

cacheGroups添加vendor对象,配置提取公共 引入模块,输出vendor.jsdist目录下

optimization: {
        splitChunks: {  //分割代码块

            cacheGroups: {  //缓存组 缓存公共代码

                commons: {  //公共模块 
                    name: "commons",
                    chunks: "initial",  //入口处开始提取代码
                    minSize:0,      //代码最小多大,进行抽离
                    minChunks:2,    //代码复 2 次以上的抽离
                },
                // vendor:{    //比较优雅的分离打包配置:将重复引入的第三方包抽离出来
                //     priority:1,     //优先级
                //     test:/node_modules/,    //引用的代码包位置
                //     chunks:'initial',   //代码入口
                //     minSize:0,      //代码最小大小 
                //     minChunks:2  //最少引用次数
                // }
                vendors: { 
                    test: /node_modules/,
                     name: 'vendors', 
                     minSize: 0,
                      minChunks: 1, 
                      chunks: 'initial',
                       priority: 1 // 该配置项是设置处理的优先级,数值越大越优先处理 
               }
            }
         },

相关文章

网友评论

      本文标题:11-webpack4.x 提取公共代码

      本文链接:https://www.haomeiwen.com/subject/vaclsqtx.html