1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| var gulp = require('gulp'); var minifycss = require('gulp-clean-css'); var uglify = require('gulp-uglify'); var htmlmin = require('gulp-htmlmin'); var htmlclean = require('gulp-htmlclean'); var imagemin = require('gulp-imagemin'); var del = require('del'); var runSequence = require('run-sequence'); var Hexo = require('hexo');
gulp.task('clean', function() { return del(['public/**/*']); });
var hexo = new Hexo(process.cwd(), {}); gulp.task('generate', function(cb) { hexo.init().then(function() { return hexo.call('generate', { watch: false }); }).then(function() { return hexo.exit(); }).then(function() { return cb() }).catch(function(err) { console.log(err); hexo.exit(err); return cb(err); }) })
gulp.task('minify-css', function() { return gulp.src('./public/**/*.css') .pipe(minifycss({ compatibility: 'ie8' })) .pipe(gulp.dest('./public')); });
gulp.task('minify-html', function() { return gulp.src('./public/**/*.html') .pipe(htmlclean()) .pipe(htmlmin({ removeComments: true, minifyJS: true, minifyCSS: true, minifyURLs: true, })) .pipe(gulp.dest('./public')) });
gulp.task('minify-js', function() { return gulp.src('./public/**/*.js') .pipe(uglify()) .pipe(gulp.dest('./public')); });
gulp.task('minify-img', function() { return gulp.src('./public/images/**/*.*') .pipe(imagemin()) .pipe(gulp.dest('./public/images')) })
gulp.task('minify-img-aggressive', function() { return gulp.src('./public/images/**/*.*') .pipe(imagemin( [imagemin.gifsicle({'optimizationLevel': 3}), imagemin.jpegtran({'progressive': true}), imagemin.optipng({'optimizationLevel': 7}), imagemin.svgo()], {'verbose': true})) .pipe(gulp.dest('./public/images')) })
gulp.task('compress', function(cb) { runSequence(['minify-html', 'minify-css', 'minify-js', 'minify-img-aggressive'], cb); });
gulp.task('build', function(cb) { runSequence('clean', 'generate', 'compress', cb) }); gulp.task('default', ['build'])
|