vue-cli3打包部分优化

不生成map 15.5M

node_modules_@vue_cli-service@4.2.3@@vue\cli-service\lib\options.js
productionSourceMap: false,

分离合并 css 14.3M

vue.config.js

css: {
        // 是否使用css分离插件 ExtractTextPlugin
        extract: true,
        // 开启 CSS source maps?
        sourceMap: false,
        // css预设器配置项
        loaderOptions: {},
        // 启用 CSS modules for all css / pre-processor files.
        requireModuleExtension: true
      },

图片压缩 9.50M

vue.config.js
npm install image-webpack-loader -D

// 压缩图片
  chainWebpack: config => {
    config.module
        .rule('images')
        .use('image-webpack-loader')
        .loader('image-webpack-loader')
        .options({
          bypassOnDebug: true
        })
        .end()
  },

公共代码抽离 9.42M

vue.config.js

configureWebpack: () => ({
        optimization: {
            splitChunks: {
                cacheGroups: {
                    vendor: {
                        chunks: "all",
                        test: /node_modules/,
                        name: "vendor",
                        minChunks: 1,
                        maxInitialRequests: 5,
                        minSize: 0,
                        priority: 100,
                    },
                    common: {
                        chunks: "all",
                        test: /[\\/]src[\\/]js[\\/]/,
                        name: "common",
                        minChunks: 2,
                        maxInitialRequests: 5,
                        minSize: 0,
                        priority: 60
                    },
                    styles: {
                        name: 'styles',
                        test: /\.(sa|sc|c)ss$/,
                        chunks: 'all',
                        enforce: true,
                    },
                    runtimeChunk: {
                        name: 'manifest'
                    }
                }
            }
        }
    }),

GZip 8.75M // 失败

npm i -D compression-webpack-plugin
vue.config.js

  configureWebpack: config => {
        if (process.env.NODE_ENV != 'development') {
            return {
                plugins: [new CompressionPlugin({
                    // filename: `./public/yz-vue-assets/js/[name].${process.env.NODE_ENV}.${Timestamp}.js`,
                    algorithm: 'brotliCompress',
                    test: /\.(js|css|html|svg)$/,
                    compressionOptions: { level: 11 },
                    threshold: 10240,
                    minRatio: 0.8,
                    deleteOriginalAssets: true, 
                })],
                output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】
                    filename: `./public/yz-vue-assets/js/[name].${process.env.NODE_ENV}.${Timestamp}.js`,
                    chunkFilename: `./public/yz-vue-assets/js/[name].${process.env.NODE_ENV}.${Timestamp}.js`
                },
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值