分析工具
npm run build --report或者yarn build --report
执行成功后,在 dist 文件夹下会生成report相关文件,用浏览器打开 report.html 文件,查看相关分析
gzip压缩
vue.config.js文件
const CompressionPlugin = require('compression-webpack-plugin')//匹配此 {RegExp} 的资源const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/imodule.exports = {configureWebpack: {plugins: [new CompressionPlugin({algorithm: 'gzip', // 使用gzip压缩test: productionGzipExtensions, // 匹配文件名// filename: '[path].gz[query]', // 压缩后的文件名(保持原文件名,后缀加.gz)minRatio: 0.8, // 压缩率小于0.8才会压缩threshold: 10240, // 对超过10k的数据压缩deleteOriginalAssets: false // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)})]}}
nginx相关配置 nginx.conf
server {listen 8080;server_name localhost;# 开启gzip on为开启,off为关闭gzip on;gzip_static on;# 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。# 默认值是0,不管页面多大都压缩。# 建议设置成大于10k的字节数,配合compression-webpack-plugingzip_min_length 1k;# 获取多少内存用于缓存压缩结果,‘16 8k’表示以8k*16 为单位获得。# PS: 如果没有.gz文件,是需要Nginx实时压缩的gzip_buffers 16 8k;# 注:99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。gzip_http_version 1.1;# 同 compression-webpack-plugin 插件一样,gzip压缩比(1~9),# 越小压缩效果越差,但是越大处理越慢,一般取中间值gzip_comp_level 6;gzip_types application/javascript text/javascript text/css image/jpeg image/gif image/png image/jpg image/svg;# 请求加个 vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩gzip_vary on;}
