Last active
April 9, 2019 08:50
-
-
Save lideo/a5a8600c62ba5b41cfe7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
// ----------------------------------------------------------------------------- | |
// Dependencies | |
// ----------------------------------------------------------------------------- | |
var gulp = require('gulp'); | |
var sass = require('gulp-sass'); | |
var sourcemaps = require('gulp-sourcemaps'); | |
var autoprefixer = require('gulp-autoprefixer'); | |
var sassdoc = require('sassdoc'); | |
// ----------------------------------------------------------------------------- | |
// Configuration | |
// ----------------------------------------------------------------------------- | |
var input = './stylesheets/**/*.scss'; | |
var output = './public/css'; | |
var sassOptions = { outputStyle: 'expanded' }; | |
var autoprefixerOptions = { browsers: ['last 2 versions', '> 5%', 'Firefox ESR'] }; | |
var sassdocOptions = { dest: './public/sassdoc' }; | |
// ----------------------------------------------------------------------------- | |
// Sass compilation | |
// ----------------------------------------------------------------------------- | |
gulp.task('sass', function () { | |
return gulp | |
.src(input) | |
.pipe(sourcemaps.init()) | |
.pipe(sass(sassOptions).on('error', sass.logError)) | |
.pipe(sourcemaps.write()) | |
.pipe(autoprefixer(autoprefixerOptions)) | |
.pipe(gulp.dest(output)); | |
}); | |
// ----------------------------------------------------------------------------- | |
// Sass documentation generation | |
// ----------------------------------------------------------------------------- | |
gulp.task('sassdoc', function () { | |
return gulp | |
.src(input) | |
.pipe(sassdoc(sassdocOptions)) | |
.resume(); | |
}); | |
// ----------------------------------------------------------------------------- | |
// Watchers | |
// ----------------------------------------------------------------------------- | |
gulp.task('watch', function() { | |
return gulp | |
// Watch the input folder for change, | |
// and run `sass` task when something happens | |
.watch(input, ['sass']) | |
// When there is a change, | |
// log a message in the console | |
.on('change', function(event) { | |
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); | |
}); | |
}); | |
// ----------------------------------------------------------------------------- | |
// Production build | |
// ----------------------------------------------------------------------------- | |
gulp.task('prod', ['sassdoc'], function () { | |
return gulp | |
.src(input) | |
.pipe(sass({ outputStyle: 'compressed' })) | |
.pipe(autoprefixer(autoprefixerOptions)) | |
.pipe(gulp.dest(output)); | |
}); | |
// ----------------------------------------------------------------------------- | |
// Default task | |
// ----------------------------------------------------------------------------- | |
gulp.task('default', ['sass', 'watch' /*, possible other tasks... */]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment