/* File: gulpfile.js */ /* jshint node: true */ 'use strict'; // grab our packages var gulp = require('gulp'); var jshint = require('gulp-jshint'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var rename = require('gulp-rename'); var autoprefixer = require('gulp-autoprefixer'); var runSequence = require('run-sequence'); var sass = require('gulp-sass'); var cleanCss = require('gulp-clean-css'); var hash = require('gulp-hash'); var webserver = require('gulp-webserver'); var del = require('del'); var util = require('gulp-util'); var src = './src', vnd = './vendor', dst = './static', scssSrc = src + '/scss', scssVnd = vnd + '/scss', scssDst = dst + '/css', jsSrc = src + '/js', jsVnd = vnd + '/js', jsDst = dst + '/js', fontDst = dst + '/fonts'; // define the default task and add the watch task to it gulp.task('default', ['build']); gulp.task('build', function(callback) { runSequence('vendor', 'pack-css', 'pack-js'); }); gulp.task('pack-js', function () { return gulp.src([jsVnd + '/**/*.js', jsSrc + '/**/*.js']) .pipe(concat('slate.js')) .pipe(util.env.debug ? util.noop() : uglify()) .pipe(gulp.dest(jsDst)); }); gulp.task('pack-css', function () { return gulp.src([scssVnd + '/**/*.[s]?css', scssSrc + '/**/*.[s]?css']) .pipe(sass({ outputStyle: 'compressed', errLogToConsole: true })) .pipe(concat('slate.css')) .pipe(cleanCss()) .pipe(gulp.dest(scssDst)); }); gulp.task('vendor', function () { // del([scssDst + '/font-awesome.*', fontDst]); gulp.src(['./node_modules/font-awesome/css/font-awesome.css']) .pipe(gulp.dest(scssVnd)); gulp.src(['./node_modules/font-awesome/fonts/*']) .pipe(gulp.dest(fontDst)); gulp.src(['./node_modules/shufflejs/dist/shuffle.js']) .pipe(gulp.dest(jsVnd)); gulp.src(['./node_modules/tinycolor2/tinycolor.js']) .pipe(gulp.dest(jsVnd)); }); // configure which files to watch and what tasks to use on file changes gulp.task('watch', function() { runSequence('pack-css', 'pack-js'); gulp.watch(scssSrc + '/**/*css', ['pack-css']); gulp.watch(jsSrc + '/**/*.js', ['pack-js']); }); gulp.task('serve', ['watch'], function() { gulp.src(dst) .pipe(webserver({ livereload: true, directoryListing: false, open: true, fallback: 'index.html' })); });