adfab-gulp-boilerplate
Version:
Adfab's boilerplate. Helps you kick-start a front-end project within minutes.
36 lines (32 loc) • 1.31 kB
JavaScript
module.exports = function(configName) {
const gulp = require('gulp');
const plumber = require('gulp-plumber');
const notify = require('gulp-notify');
const gulpif = require('gulp-if');
const browserSync = require('browser-sync');
const util = require('gulp-util');
const runSequence = require('run-sequence');
const config = util.env.boilerplate.config;
const sassPipe = require('../pipe/sass');
const sassConfig = config.tasks[configName];
const isWatching = ['serve', 'watch'].indexOf(process.argv[2]) >= 0;
return gulp.src(sassConfig.source, {cwd: config.sourceRoot})
.pipe(plumber({
errorHandler: notify.onError({
message: '<%= error.message %>',
title: 'SASS Error'
})
}))
.pipe(sassPipe())
.pipe(gulp.dest(config.destinationRoot + sassConfig.destination))
.on('end', function() {
if(sassConfig.hasOwnProperty('runafter')) {
runSequence(sassConfig.runafter);
}
})
.pipe(gulpif(isWatching, browserSync.stream()))
.pipe(notify({ message: 'Successfully compiled SASS for task ' + configName, onLast: true }))
.on('error', function() {
this.emit('error', new Error(configName + ' compilation Error'));
});
};