vue-cli3.0实现打包gzip压缩和一些东西

一.查看自己的打包详情,那个文件过大

1.npm安装要用的插件

npm install --save-dev webpack-bundle-analyzer

2.在vue.config.js文件中引入插件

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin  

3.添加配置,使用的是默认的配置

module.exports = {
 configureWebpack: {
    plugins: [
            // 查看打包详细配置
            new BundleAnalyzerPlugin(),
            ]
        }
    }

4.然后直接运行项目,就会默认打开http://127.0.0.1:8888为项目的打包详情

二.使用gzip对打包之后的文件进行压缩,超有用,但是会增加服务器的cpu使用率

1.安装需要的插件

npm install --save-dev compression-webpack-plugin

2.在头部引入插件

const path = require('path');
const webpack = require('webpack')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
const isProduction = process.env.NODE_ENV === 'production'

3.添加配置文件

module.exports = {
    configureWebpack: {
          resolve: {
            alias: {
                '@': path.resolve(__dirname, './src'),
                '@i': path.resolve(__dirname, './src/assets'),
            }
        },
        plugins: [
            // Ignore all locale files of moment.js
            new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),

            // 配置compression-webpack-plugin压缩
            new CompressionWebpackPlugin({
                algorithm: 'gzip',
                test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
                threshold: 10240,
                minRatio: 0.8
            }),
            new webpack.optimize.LimitChunkCountPlugin({
                maxChunks: 5,
                minChunkSize: 100
            })
        ]
    }    
}

4.运行打包命令 npm run build 就可以,在打包出来的文件中就包含.gz文件,直接放置在服务器上即可

检测有没有成功试用,可以通过请求头

,也可以通过文件的大小查看

最后贴一下整个vue.config.js文件,有什么还可以优化的欢迎指点

const path = require('path');

const webpack = require('webpack')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
const isProduction = process.env.NODE_ENV === 'production'
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin    
module.exports = {
    lintOnSave: false,
    publicPath: './',
    outputDir: "newad",
    productionSourceMap: false,
    configureWebpack: {
        externals: {
            'vue': 'Vue',
            // 'vue-router': 'VueRouter',
            'router': 'VueRouter',
            'axios': 'axios',
            'vant': 'vant'
                //包名 : 全局变量
        },
        resolve: {
            alias: {
                '@': path.resolve(__dirname, './src'),
                '@i': path.resolve(__dirname, './src/assets'),
            }
        },
        plugins: [
            // 查看打包详细配置
            // new BundleAnalyzerPlugin(),
            // Ignore all locale files of moment.js
            new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),

            // 配置compression-webpack-plugin压缩
            new CompressionWebpackPlugin({
                algorithm: 'gzip',
                test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
                threshold: 10240,
                minRatio: 0.8
            }),
            new webpack.optimize.LimitChunkCountPlugin({
                maxChunks: 5,
                minChunkSize: 100
            })
        ]
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值