zoukankan      html  css  js  c++  java
  • webpack体积优化篇二(GZ压缩)

    这里我列举几个常用的能够用于减少包体大小的插件,我们可以根据项目需求选择性的使用:
    compression-webpack-plugin :该插件能够将资源文件压缩为.gz文件,并且根据客户端的需求按需加载。
    dedupeplugin :抽取出输出包体中的相同或者近似的文件或者代码,可能对于 Entry Chunk 有所负担,不过能有效地减少包体大小。
    uglifyjsplugin :压缩输出块的大小,可以参考官方文档。
    ignoreplugin :用于忽略引入模块中并不需要的内容,譬如当我们引入moment.js时,我们并不需要引入该库中所有的区域设置,因此可以利用该插件忽略不必要的代码。
    ...
    var CompressionPlugin = require("compression-webpack-plugin");
    ...
    let config = {
    entry: path.join(__dirname, '../app/index'),
    cache: false,
    devtool: 'cheap-module-source-map',
    plugins: [
    new webpack.DefinePlugin({
    'process.env.NODE_ENV': '"production"'
    }),
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.UglifyJsPlugin({
    mangle: true,
    compress: {
    warnings: false, // Suppress uglification warnings
    pure_getters: true,
    unsafe: true,
    unsafe_comps: true,
    screw_ie8: true
    },
    output: {
    comments: false,
    },
    exclude: [/.min.js$/gi] // skip pre-minified libs
    }),
    new webpack.IgnorePlugin(/^./locale$/, [/moment$/]),
    new webpack.NoErrorsPlugin(),
    new CompressionPlugin({
    asset: "[path].gz[query]",
    algorithm: "gzip",
    test: /.js$|.css$|.html$/,
    threshold: 10240,
    minRatio: 0
    })
    ...
    ]
    整体压缩的一些配置
     
    重点:简单介绍下其中的GZ压缩
    compression-webpack-plugin :该插件能够将资源文件压缩为.gz文件,并且根据客户端的需求按需加载。
    var CompressionPlugin = require("compression-webpack-plugin");
    module.exports = {
        plugins: [
            new CompressionPlugin({
                asset: "[path].gz[query]",
                algorithm: "gzip",
                test: /.(js|html)$/,
                threshold: 10240,
                minRatio: 0.8
            })
        ]
    }
     
    参数:
    • asset:目标资产名称。[file]被替换为原始资产。[path]被替换为原始资产的路径和[query]查询。默认为"[path].gz[query]"。
    • filename:A function(asset)接收资产名称(处理后的asset选项)并返回新的资产名称。默认为false。
    • algorithm:可以是一个function(buf, callback)或一个字符串。对于一个字符串,算法取自zlib(或zopfli for zopfli)。默认为"gzip"。
    • test:处理与此RegExp相匹配的所有资产。默认为每个资产。
    • threshold:只处理大于此大小的资产。以字节为单位 默认为0。
    • minRatio:只有压缩得更好的资产才能处理这个比率。默认为0.8。
    • deleteOriginalAssets:是否删除原始资产?默认为false。
    Zopfli的选项参数(有关详细信息,请参阅node-zopfli doc):
    • verbose:默认值:false,
    • verbose_more:默认值:false,
    • 编号:默认值:15,
    • blocksplitting:默认值:true,
    • blocksplittinglast:默认值:false,
    • blocksplittingmax:默认值:15
    成功就看可以看到:

     

    看到你就成功了,塌坑路上不孤独。。。。。。

  • 相关阅读:
    centos pptp客户端 连接服务端
    工控上常见的通讯接口与协议
    winform无边框窗体拖动
    Winform实现窗体渐变色
    Win10系统安装
    WIN 10 系统能正常使用WLAN,无法连接以太网
    C#DataGridView分页显示数据
    遍历枚举的值
    C#dataGridView添加自增列
    Winform实现打印功能
  • 原文地址:https://www.cnblogs.com/qiuzhimutou/p/7592875.html
Copyright © 2011-2022 走看看