-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgulpfile.js
More file actions
105 lines (88 loc) · 3.34 KB
/
gulpfile.js
File metadata and controls
105 lines (88 loc) · 3.34 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
'use strict';
var gulp = require('gulp'),
jshint = require('gulp-jshint'),
stylish = require('jshint-stylish'),
paths = require('compass-options').dirs(),
rename = require('gulp-rename'),
stripDebug = require('gulp-strip-debug'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
compass = require('gulp-compass'),
prefix = require('gulp-autoprefixer'),
cleanCSS = require('gulp-clean-css'),
complexity = require('gulp-complexity'),
replace = require('gulp-replace');
// Config Variables
var source = 'src';
////////////////////////////////////////////////////////////////////////////////
// JavaScript Lint Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('lint', function() {
return gulp.src([ source + '/js/**/*.js' ])
.pipe(jshint())
.pipe(jshint.reporter(stylish))
});
////////////////////////////////////////////////////////////////////////////////
// JavaScript Complexity Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('jscomplexity', ['lint'], function() {
return gulp.src([ source + '/js/**/*.js' ])
.pipe(complexity());
});
////////////////////////////////////////////////////////////////////////////////
// JavaScript Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('scripts', ['jscomplexity'], function() {
gulp.src([
// Config (optional)
source + '/js/slider-menu.jquery.js'
])
.pipe(concat('slider-menu.jquery.js'))
.pipe(rename('slider-menu.jquery.min.js'))
.pipe(stripDebug())
.pipe(uglify())
.pipe(gulp.dest(paths.js));
});
////////////////////////////////////////////////////////////////////////////////
// Compass Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('compass', function() {
return gulp.src(paths.sass + '/**/*.scss')
.pipe(compass({
config_file: './config.rb',
css: paths.css,
sass: paths.sass,
bundle_exec: true,
time: true
}))
.on('error', function(error) {
console.log(error);
this.emit('end');
})
.pipe(prefix({
browsers: ['last 3 versions', '> 1%', 'ie 9'],
cascade: false
}))
.pipe(cleanCSS({
compatibility: 'ie9'
}, function(details) {
console.log(details.name + ': ' + details.stats.originalSize);
console.log(details.name + ': ' + details.stats.minifiedSize);
}))
.pipe(gulp.dest(paths.css));
});
////////////////////////////////////////////////////////////////////////////////
// Watch Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('watch', function () {
gulp.watch(source + '/**/*.js', ['scripts']);
gulp.watch(paths.sass + '/**/*.scss', ['compass']);
});
////////////////////////////////////////////////////////////////////////////////
// Default Task
////////////////////////////////////////////////////////////////////////////////
gulp.task('default', ['scripts', 'compass']);
////////////////////////////////////////////////////////////////////////////////
// Compile Task (for production)
////////////////////////////////////////////////////////////////////////////////
gulp.task('compile', ['scripts', 'compass', 'watch']);