webpack打包优化

1.使用npm ,node,webpack的新版本
2文件用loader是要把exclude:/node_modules/去除是js
  或使用include:path.resoleve(_dirname,'../src')只会打包src目录下的文件
3尽量不要使用一些打包插件这样会降低他们的打包速度
4尽量使用官方社区的插件,其他插件可以实现功能,但是可能忽略他们的性能
5.合理优化resolve配置项
        resolve:{
            extensions:['js','jsx']//当引入index是可以使js或jsx
            mainFiles:['index','xxx'],找默认文件夹的index文件
            alias:{//别名作用场景:当嵌套目录过多时找文件就会很麻烦所以可以用别名alias
                '自己起的名字':path.resolve(_dirname,'路径')
            }

        }
 6.使用DLLPlugin提高打包速度在大型项目是用的非常多的
        第三方模块值打包一次以后就不用打包了
        在webpack.dll.js中
        module.export={
            entry:'',  
            output:{
                path:path.resolve(_dirname,'url'),
                filename:'[name].dll.js',
                libary:''.
            },
            plugins:{
                new webpack.DllPlugin({映射文件
                    name:'[name]',
                    path:path.resolve(_dirname,'url')
                })
            } 

        }
        在公共webpack.common.js中安装add-asset-html-webpack-plugin中
        new AddHtmlWebpackPlugin({//在html增加静态文件
            filepath:path.resolve(_dirname,'url')
        }),
        new webpack.DllReferencePlugin({
            manifest:path.resolve(_dirname,'打包好url')
        })
        注意:当有多个第三方模块时,可以动态加载
        const fs= require('fs');node的相关语法
        const filesName = fs.readdirSync(path.resolve(_dirname,'打包好文件夹路径'))获取文件夹下文件name他是一个数组
        然后用filesName.forEach(file=>{
            if(/.*\./dll.js/.test(file)){
                plugin.push(
                    new AddHtmlWebpackPlugin({//在html增加静态文件
                        filepath:path.resolve(_dirname,'url')
                    }),
                )
            }
            if (/.*\.mainfest.json/.test(file)){
                plugin.push(
                    new webpack.DllReferencePlugin({
                        manifest:path.resolve(_dirname,'打包好url',file)
                    })
                )
            }
        
        })
        7.控制包文件大小用treeshaking,tread-loader,parallel-webpack(多页面打包),happypack多进程打包
        通过stats分析打包结果,那个阶段耗时比较多就对其做优化
        8.无插件的剔除
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值