-
Notifications
You must be signed in to change notification settings - Fork 1
/
sample.gulpfile.js
70 lines (61 loc) · 2.48 KB
/
sample.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//---------------------------------------------------------------
// var stylesheet_dir = "path/to/theme"
//---------------------------------------------------------------
// modules
var gulp = require('gulp');
var log = require('fancy-log');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var coffee = require('gulp-coffee');
var minifyCSS = require('gulp-clean-css');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var merge2 = require('merge2');
//---------------------------------------------------------------
// To install the needed modules run this command:
// npm install gulp fancy-log gulp-sass gulp-autoprefixer gulp-coffee gulp-clean-css gulp-uglify gulp-concat merge2 --save-dev
//---------------------------------------------------------------
// tasks
gulp.task('scss', function (done) {
gulp.src([
stylesheet_dir + '/scss/style.scss',
])
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer({ browsers: ['> 5%', 'last 2 versions'] }))
.pipe(minifyCSS({keepSpecialComments: '*', keepBreaks: false}))
.pipe(gulp.dest(stylesheet_dir + '/'));
done();
});
gulp.task('includes', function (done) {
gulp.src([
stylesheet_dir + '/js/required/*.js',
stylesheet_dir + '/js/includes/*.js',
])
.pipe(concat('includes.js'))
.pipe(gulp.dest(stylesheet_dir + '/js/src/'));
done();
});
gulp.task('javascript', function (done) {
var includesStream = gulp.src(stylesheet_dir + '/js/src/*.js');
var coffeeStream = gulp.src(stylesheet_dir + '/js/coffee/master.coffee')
.pipe(coffee({bare: true}).on('error', log));
merge2(includesStream, coffeeStream)
.pipe(concat('site.js'))
.pipe(gulp.dest(stylesheet_dir + '/js/'));
done();
});
gulp.task('minify', function () {
var siteMinStream = gulp.src(stylesheet_dir + '/js/site.js')
.pipe(uglify())
.pipe(concat('site.min.js'))
.pipe(gulp.dest(stylesheet_dir + '/js/'));
});
//---------------------------------------------------------------
// watch
gulp.task('default', function () {
gulp.watch(stylesheet_dir + '/scss/**/*.scss', ['scss']);
gulp.watch(stylesheet_dir + '/js/required/**/*.js', ['includes', 'javascript', 'minify']);
gulp.watch(stylesheet_dir + '/js/includes/**/*.js', ['includes', 'javascript', 'minify']);
gulp.watch(stylesheet_dir + '/js/coffee/**/*.coffee', ['javascript']);
gulp.watch(stylesheet_dir + '/js/site.js', ['minify']);
});