gulpfile.js (2158B)
1 var gulp = require('gulp'); 2 var csso = require('gulp-csso'); 3 var uglify = require('gulp-uglify'); 4 var concat = require('gulp-concat'); 5 var sass = require('gulp-sass'); 6 var plumber = require('gulp-plumber'); 7 var cp = require('child_process'); 8 var imagemin = require('gulp-imagemin'); 9 var browserSync = require('browser-sync'); 10 11 var jekyllCommand = (/^win/.test(process.platform)) ? 'jekyll.bat' : 'jekyll'; 12 13 /* 14 * Build the Jekyll Site 15 * runs a child process in node that runs the jekyll commands 16 */ 17 /*gulp.task('jekyll-build', function (done) { 18 return cp.spawn(jekyllCommand, ['build'], {stdio: 'inherit'}) 19 .on('close', done); 20 });*/ 21 22 /* 23 * Rebuild Jekyll & reload browserSync 24 */ 25 /*gulp.task('jekyll-rebuild', ['jekyll-build'], function () { 26 browserSync.reload(); 27 });*/ 28 29 /* 30 * Build the jekyll site and launch browser-sync 31 */ 32 /*gulp.task('browser-sync', ['jekyll-build'], function() { 33 browserSync({ 34 server: { 35 baseDir: '_site' 36 } 37 }); 38 });*/ 39 40 /* 41 * Compile and minify sass 42 */ 43 gulp.task('sass', function() { 44 gulp.src('src/styles/**/*.scss') 45 .pipe(plumber()) 46 .pipe(sass()) 47 .pipe(csso()) 48 .pipe(gulp.dest('assets/css/')); 49 }); 50 51 /* 52 * Compile fonts 53 */ 54 gulp.task('fonts', function() { 55 gulp.src('src/fonts/**/*.{ttf,woff,woff2}') 56 .pipe(plumber()) 57 .pipe(gulp.dest('assets/fonts/')); 58 }) 59 60 /* 61 * Minify images 62 */ 63 gulp.task('imagemin', function() { 64 return gulp.src('src/img/**/*.{jpg,png,gif}') 65 .pipe(plumber()) 66 .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })) 67 .pipe(gulp.dest('assets/img/')); 68 }); 69 70 /** 71 * Compile and minify js 72 */ 73 gulp.task('js', function(){ 74 return gulp.src('src/js/**/*.js') 75 .pipe(plumber()) 76 .pipe(concat('main.js')) 77 .pipe(uglify()) 78 .pipe(gulp.dest('assets/js/')) 79 }); 80 81 //gulp.task('watch', function() { 82 // gulp.watch('src/styles/**/*.scss', ['sass', 'jekyll-rebuild']); 83 // gulp.watch('src/js/**/*.js', ['js']); 84 // gulp.watch('src/fonts/**/*.{tff,woff,woff2}', ['fonts']); 85 // gulp.watch('src/img/**/*.{jpg,png,gif}', ['imagemin']); 86 // gulp.watch(['*html', '_includes/*html', '_layouts/*.html'], ['jekyll-rebuild']); 87 //}); 88 89 gulp.task('default', ['js', 'sass', 'fonts']);