keyrune/gulpfile.js

76 lines
2.7 KiB
JavaScript
Raw Normal View History

// gulpfile.js
2016-10-04 17:03:59 +00:00
/*
* Dependencies =================================
* | uses/functions of each are provided indiviudally.
*/
var gulp = require('gulp'), // task runner/manager (even tho this is a small project, it's still nice to have)
sass = require('gulp-sass'), // compiles sass for us
notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation
rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here).
autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values.
2016-10-04 17:03:59 +00:00
minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass.
merge = require('merge-stream'), // used to merge multiple streams into a single stream for node.
runseq = require('run-sequence'), // runs a sequence of gulp tasks. this is used because gulp.run is deprecated.
del = require('del'); // del is used to cleanup cache and build files.
2016-10-04 17:03:59 +00:00
/*
* Variables ====================================
* | silly, long, reused paths/dirs go here if needed.
*/
2016-10-04 17:03:59 +00:00
/*
* Gulp Tasks ===================================
* | All gulp tasks will be written/explained here.
*/
2016-10-04 17:03:59 +00:00
/*
* Build CSS Task -------------------------------
* | $ gulp build
* |
* | compiles scss into css,
* | autoprefix necessary css attributes/values,
* | minify prefixed css,
* | rename minified file with a '.min' suffix,
* | place into ./css directory
*/
gulp.task('build', function() {
return gulp.src('./sass/**/*.scss')
.pipe(sass())
.pipe(gulp.dest('./css'))
.pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false }))
.pipe(minify())
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest('./css'))
.pipe(notify({ onLast: true, message: 'build task complete' }));
});
2016-10-04 17:03:59 +00:00
/*
* Clean Task -----------------------------------
* | $ gulp clean
* |
* | Ensures that all artifacts/remnants of previous build are gone.
*/
gulp.task('clean', function() {
return del(['./css/**/*.*']);
});
2016-10-04 17:03:59 +00:00
/*
* Watch Task -----------------------------------
* | $ gulp watch
* |
* | Great for automating compilation during develpoment.
*/
gulp.task('watch', function() {
gulp.watch('./sass/**/*.scss', ['clean', 'build']);
});
2016-10-04 17:03:59 +00:00
/*
* Default Task ---------------------------------
* | $ gulp
* | $ gulp default
* |
* | Runs the watch task as a task dependency by default.
*/
gulp.task('default', ['watch']);