需求场景:
- 最近在部署公司angularjs前端项目的时候,发现打包生成的一个main.js特别大达到了10M,感觉前端这边应该有很大的优化空间,试了好几种方式比如:加优化参数–aot, —-build-optimizer等都试过,生成的文件大小基本没有变化,于是就想从压缩静态文件入手;
angularjs项目中引入打包工具gzipper:
将打包命令写入package.json,参考如下:
1
ng build --prod && gzipper --verbose --level 9 ./dist/my-app //level表示压缩级别:1-9(压缩率依次变高)
nginx配置支持gzip压缩:
1
2
3
4
5
6
7
8
9
10
11# 在nginx配置http/server/location中加入如下配置:
gzip on; //开启gzip
gzip_proxied no-cache no-store private expired auth; //代理的情况
gzip_min_length 1k; //gzip最小压缩大小
gzip_buffers 4 16k;
gzip_comp_level 5; //gzip压缩级别(1-9)
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png; //支持压缩的文件类型
gzip_vary on;
gzip_disable "MSIE [1-6]\."; //ie 1-6下禁用压缩
gzip_static on; //开启本地gzip文件的压缩,要求事先生成gzip文件
gzip_http_version 1.0; //gzip压缩版本,在多级代理的情况下默认可能会有坑打包配置上线验证:
响应header中包含这个说明压缩成功:Content-Encoding:gzip
下图是对比
Angular Build貌似还可以用其他的压缩方式