-
Notifications
You must be signed in to change notification settings - Fork 9
/
gulpfile.js
138 lines (112 loc) · 3.9 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
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
var gulp = require('gulp')
, less = require('gulp-less-sourcemap')
, path = require('path')
, minifyCSS = require('gulp-minify-css')
, concat = require('gulp-concat')
, stripDebug = require('gulp-strip-debug')
, jshint = require('gulp-jshint')
, uglify = require('gulp-uglify')
, prefix = require('gulp-autoprefixer')
, sourcemaps = require('gulp-sourcemaps')
, htmlmin = require('gulp-htmlmin')
, serve = require('gulp-serve')
, livereload = require('gulp-livereload');
var scripts = [
'./src/scripts/angular.js'
, './src/scripts/app.js'
, './src/scripts/vendor/*.js'
, './src/scripts/vendor/macgyver/*.js'
, './src/scripts/directives/*.js'
, './src/scripts/services/*.js'
, './src/scripts/filters/*.js'
, './src/scripts/siren/*.js'
, './src/scripts/controllers/*.js'
];
var zettaScripts = [
, './src/scripts/app.js'
, './src/scripts/directives/*.js'
, './src/scripts/services/*.js'
, './src/scripts/filters/*.js'
, './src/scripts/siren/*.js'
, './src/scripts/controllers/*.js'
];
gulp.task('jshint', function() {
gulp.src(zettaScripts)
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
gulp.task('scripts', function() {
gulp.src(scripts)
/* .pipe(sourcemaps.init()) */
.pipe(concat('zetta.js'))
/* .pipe(stripDebug()) */
.pipe(uglify({mangle:false})) //remove mangle.false to further reduce filesize of the production JS file. about a 30% savings
/* .pipe(sourcemaps.write('./')) */
.pipe(gulp.dest('./dist/scripts'))
});
gulp.task('styles',['css'], function() {
gulp.src('./src/styles/styles.less')
.pipe(less({
generateSourceMap: false,
paths: [ path.join(__dirname, 'less', 'includes') ]
}))
.pipe(gulp.dest('./src/styles'));
});
gulp.task('test-styles', function() {
gulp.src('./src/styles/test.less')
.pipe(less({
generateSourceMap: false,
paths: [ path.join(__dirname, 'less', 'includes') ]
}))
.pipe(gulp.dest('./src/styles'));
});
gulp.task('css', function() {
gulp.src([
'./src/styles/pure.css'
,'./src/styles/grids-responsive.css'
,'./src/styles/prism.css'
,'./src/styles/styles.css'
,'./src/styles/macgyver.css'
,'./src/scripts/vendor/macgyver/*.css'
])
/*.pipe(sourcemaps.init())*/
/*.pipe(prefix("last 2 version", "> 5%", "ie 9")) */
.pipe(concat('zetta.css'))
.pipe(minifyCSS({noAdvanced:true, keepSpecialComments: 0}))
/*.pipe(sourcemaps.write('./'))*/
.pipe(gulp.dest('./dist/styles'));
});
gulp.task('html', function() {
gulp.src('./src/partials/*.html')
/*.pipe(sourcemaps.init())*/
.pipe(htmlmin({
useShortDoctype: true
, removeRedundantAttributes: true
, collapseWhitespace: true
, conservativeCollapse: false
}))
/*.pipe(sourcemaps.write())*/
.pipe(gulp.dest('./dist/partials'))
});
gulp.task('move',['html'], function() {
gulp.src(['./src/favicon.ico']).pipe(gulp.dest('./dist'));
gulp.src(['./src/index.html']).pipe(gulp.dest('./dist'));
gulp.src(['./src/images/*.*']).pipe(gulp.dest('./dist/images'));
gulp.src(['./src/partials/fields/**']).pipe(gulp.dest('./dist/partials/fields'));
gulp.src('./src/styles/fonts/*.*').pipe(gulp.dest('./dist/fonts'));
});
gulp.task('serve', serve({
root: 'dist',
port: 3001
}));
gulp.task('default', ['scripts', 'styles', 'move', 'serve'], function(){
//gulp.watch(zettaScripts, ['jshint']);
gulp.watch(scripts, ['scripts']);
gulp.watch('./src/styles/*.*', ['styles']);
gulp.watch(['./src/index.html', './src/images/*.*', './src/partials/**'], ['move']);
});
gulp.task('test', ['test-styles'],function(){
gulp.watch('./src/styles/test.less', ['test-styles']);
});
gulp.task('heroku:production', ['scripts', 'styles', 'move'], function(){
});