Glup--用来压缩前端js,css, 图片资源

Posted 测试开发交流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Glup--用来压缩前端js,css, 图片资源相关的知识,希望对你有一定的参考价值。


小编最近研究着前端性能优化,顺便就拿自己写的测试平台来做前端资源的打包压缩

目前比较流行的工具有:gulp和webpack

webpack配置起来相对gulp比较困难,所以这次先用gulp来压缩资源。

官网:https://www.gulpjs.com.cn/


(1)使用npm来安装gulp

    npm install gulp --save-dev


(2)安装压缩插件

    1. 缩小CSS  (gulp-minify-css)

    2. 检查js  JSHint (gulp-jshint)

    3. 文件合并     gulp-concat

    4. 压缩JS     gulp-uglify

    5. 图片压缩    gulp-imagemin

    6. 图片深入压缩    imagemin-pngquant

    7. 清空文件夹     gulp-clean

    8. 图片快取,只有更改过得图片会进行压缩 (gulp-cache)

    9. html压缩    gulp-htmlmin

命令:

npm install gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-clean gulp-cache imagemin-pngquant gulp-htmlmin --save-dev


安装过程中,可能会出现提示,缺少package.json

npm init -f


(3)项目中使用gulp

    1. 新建gulpfile.js 文件

    2. 然后编写压缩js的代码

var gulp = require('gulp');
var uglify = require('gulp-uglify');
gulp.task('default', function() {
   // 1. 找到文件
   
gulp.src('XXX/static/js/*.js')
   // 2. 压缩文件js
   
.pipe(uglify({ mangle: false }))
   // 3. 另存压缩后的文件
   
.pipe(gulp.dest('dist/js'))
});

3. 执行gulp命令开始压缩

   gulp 后面加你定义的task的名称

gulp default

4. 执行完毕

    

Glup--用来压缩前端js,css, 图片资源

压缩后的大小,很明显是压缩了。

Glup--用来压缩前端js,css, 图片资源

Glup--用来压缩前端js,css, 图片资源

当然压缩照片也是如此

 var gulp = require('gulp');
//压缩图片
var imagemin = require('gulp-imagemin');
gulp.task('default', function() {
// 将你的默认的任务代码放在这
// 1. 找到文件
gulp.src('xxx/static/images/*.{png,jpg,gif,ico,gif}
//2. 压缩image
.pipe(imagemin())
// 3. 另存压缩后的文件
.pipe(gulp.dest('dist/images'))
});

执行后

Glup--用来压缩前端js,css, 图片资源


另外压缩css要注意一些兼容的语法


var cssmin = require('gulp-minify-css');
gulp.task('cssmin', function () {
   gulp.src('xxx/static/css/*.css')
       //.pipe(conCat('css/index.min.css'))  合并文件
       
.pipe(plumber({errorHandler: errrHandler}))
       .pipe(cssmin({
           advanced: false,
           
//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
           
compatibility: 'ie7',
           
//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7'IE7兼容模式,'ie8'IE8兼容模式,'*'IE9+兼容模式]
           
keepBreaks: false,
           
//类型:Boolean 默认:false [是否保留换行]
           
keepSpecialComments: '*'
           
//保留所有特殊前缀
           
// 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀
       
}))
       .pipe(gulp.dest('dist/css'));
});


检查js语法错误的方法

https://blog.csdn.net/u013720580/article/details/68487871

例子:

var gulp = require('gulp');
var jshint = require('gulp-jshint');//js检查
gulp.task('default', function() {
   gulp.src('reindeer/static/js/task_list/tools.js')
   
.pipe(jshint())       // 进行检查
 
.pipe(jshint.reporter('default'))  // 对代码进行报错提示
});


最后html的压缩,在试验中发现,容易把django的语法改错误,需要慎重


预设任务(定义执行gulp,默认执行的任务)

gulp.task('default', ['clean'], function() {      gulp.start('default', 'cssmin'); });


以上是关于Glup--用来压缩前端js,css, 图片资源的主要内容,如果未能解决你的问题,请参考以下文章

glup 基础插件应用 随笔

Glup快速入门整理

前端优化常用技巧

性能优化: 资源合并与压缩 -- 文件合并(CSS与JavaScript 文件合并提升前端性能)

性能优化: 资源合并与压缩 -- 文件合并(CSS与JavaScript 文件合并提升前端性能)

前端js和css的压缩合并之gulp