-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
executable file
·162 lines (138 loc) · 4.99 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
var gulp = require('gulp'),
// transpile es2015
babelify = require('babelify'),
// static server, 8000 for "test, 4000 for "web"
connect = require('gulp-connect'),
// HTML templating preprocessor
jade = require('gulp-jade'),
// CSS preprocessor
sass = require('gulp-sass'),
bourbon = require('node-bourbon').includePaths,
// puts JS files the proper place for test
browserify = require('browserify'),
source = require('vinyl-source-stream'),
// minify assets
uglify = require('gulp-uglify'),
imagemin = require('gulp-imagemin');
// connect task
gulp.task('connect', function () {
connect.server({
root: 'test',
port: 8000,
livereload: true
});
});
gulp.task('babel-browserify', function () {
//Grabs the app.js file
return browserify(['./app/app.js', './app/assets/js/site.js'])
.bundle()
.pipe(source('scripts.js'))
// saves it to the public/js/ directory
.pipe(gulp.dest('./test/assets/js'))
.pipe(connect.reload());
});
// gulp.task('sass', function () {
// return gulp.src('./app/assets/sass/**/*.sass')
// .pipe(sass({
// includePaths: ['main'].concat(bourbon)
// }))
// .pipe(sass().on('error', sass.logError))
// .pipe(gulp.dest('./test/assets/css'))
// .pipe(gulp.dest('./web/assets/css'))
// .pipe(connect.reload());
// });
gulp.task('sass', function(){
gulp.src('./app/assets/sass/**/*.scss')
.pipe(sass({
includePaths: require('node-bourbon').includePaths,
style: 'compressed',
quiet: true
}))
.pipe(gulp.dest('./test/assets/css'))
.pipe(gulp.dest('./web/assets/css'))
});
gulp.task('jade', function () {
return gulp.src('./app/jade/**/*.jade')
.pipe(jade({
pretty: true
}))
.pipe(gulp.dest('./test/'))
.pipe(connect.reload());
});
gulp.task('imagemin', function () {
return gulp.src(['./app/assets/images/*'])
.pipe(imagemin({progressive: true, optimizationLevel: 7}))
.pipe(gulp.dest('./test/assets/images/'));
});
gulp.task('watch', function () {
gulp.watch('./app/assets/sass/**/*.scss', ['sass']);
gulp.watch('./app/jade/**/index.jade', ['jade']);
gulp.watch('./app/**/*.js', ['babel-browserify']);
});
gulp.task('default', ['sass', 'jade', 'babel-browserify', 'imagemin', 'connect', 'watch']);
////////////////////////////////////////////////////////////////
////////////////////// Build Tasks /////////////////////////////
////////////////////////////////////////////////////////////////
/*
******* These are for minifying and moving to the Web directory,
******* which is intended to be the live version ******
*/
gulp.task('minify:build', function () {
return gulp.src(['./test/assets/js/**/*.js'])
.pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(gulp.dest('./web/assets/js/'));
});
gulp.task('imagemin:build', function () {
return gulp.src(['./app/assets/images/*'])
.pipe(imagemin())
.pipe(gulp.dest('./web/assets/images/'));
});
gulp.task('jade:build', function () {
return gulp.src('./app/jade/**/*.jade')
.pipe(jade())
.pipe(gulp.dest('./web/'))
.pipe(connect.reload());
});
gulp.task('sass:build', function () {
return gulp.src('./app/assets/sass/**/*.sass')
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(gulp.dest('./web/assets/css'))
.pipe(connect.reload());
});
gulp.task('connect:build', function () {
connect.server({
root: 'web',
port: 4000,
livereload: true
});
});
gulp.task('build', ['minify:build', 'imagemin:build', 'sass:build', 'jade:build', 'connect:build']);
////////////////////////////////////////////////////////////////////////////////
///////////////////// Task Graveyard ///////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/***
******* I think I've declared this currently useless
******* but potentially useful later.
******* I mostly don't want to be wrong and have to set them up again.
******* They have value
***/
// npm install --save-dev gulp-babel
// babel = require('gulp-babel')
// gulp.task('babel', function () {
// return gulp.src(['app/main.js', './app/app.js', './app/assets/js/controllers/*.js', 'app/**/*.js'])
// .pipe(babel({
// presets: ['es2015']
// }))
// .pipe(gulp.dest('./test/assets/js'));
// });
//
// npm install --save-dev gulp-concat
// var concat = require('gulp-concat')
// gulp.task('concat', ['babel-browserify'], function () {
// // babel and concat js, same file as building
// gulp.src(['./test/assets/js/**/*.js', './test/assets/js/app.js'])
// .pipe(concat('scripts.js'))
// .pipe(gulp.dest('./test/assets/js/'))
// .pipe(connect.reload());
// });