/
gulpfile.js
51 lines (45 loc) · 1.54 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
github.com/mystrdat/gonzo-stack
2016 | MIT
============================== */
// Dependencies
const gulp = require('gulp');
const rename = require('gulp-rename');
const sass = require('gulp-sass');
const postCSS = require('gulp-postcss');
const autoprefixer = require('autoprefixer');
const cleanCSS = require('gulp-clean-css');
const sourcemaps = require('gulp-sourcemaps');
// Paths
const srcPath = './';
const buildPath = './build/';
const buildName = 'style';
// Compile with inline map for dev
gulp.task('build-dev', () => {
return gulp.src(srcPath + 'main.sass')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write())
.pipe(rename(buildName + '.css'))
.pipe(gulp.dest(buildPath));
});
// Compile minified and optimized for prod
gulp.task('build-prod', () => {
return gulp.src(srcPath + 'main.sass')
.pipe(sass().on('error', sass.logError))
.pipe(postCSS([ autoprefixer({ browsers: ['last 2 version'] }) ]))
.pipe(cleanCSS({ keepSpecialComments: 0, mergeMediaQueries: true }))
.pipe(rename(buildName + '.min.css'))
.pipe(gulp.dest(buildPath));
});
// Watchers
gulp.task('watch-dev', () => {
gulp.watch([srcPath + '**/*.sass', srcPath + '**/*.scss'], ['build-dev']);
});
gulp.task('watch-prod', () => {
gulp.watch([srcPath + '**/*.sass', srcPath + '**/*.scss'], ['build-prod']);
});
// Tasks
gulp.task('default', ['build-dev', 'watch-dev']);
gulp.task('dev', ['build-dev', 'watch-dev']);
gulp.task('prod', ['build-prod', 'watch-prod']);