This repository was archived by the owner on Nov 2, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathgulpfile.js
More file actions
82 lines (72 loc) · 2.43 KB
/
gulpfile.js
File metadata and controls
82 lines (72 loc) · 2.43 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
// TODO jshint/jscs + unit testing
var gulp = require('gulp');
var util = require("gulp-util");
var changed = require("gulp-changed");
var sass = require("gulp-ruby-sass");
var clean = require("gulp-clean");
var uglify = require("gulp-uglify");
var rjs = require("gulp-requirejs")
var replace = require("gulp-replace");
var minify = require("gulp-minify-html");
var es = require("event-stream");
var filter = require("gulp-filter");
var htmlReplace = require("gulp-html-replace");
var paths = {
src: './src',
build: './build',
buildViews: './build/views',
buildPublic: './build/public',
buildCss: './build/public/css'
};
var globs = {
src: paths.src + '/**/*',
build: paths.build + '/**/*',
views: '**.tmpl',
js: paths.src + '/**/*.js',
sass: ['./src/public/sass/{screen,apply}.scss', './src/public/sass/skrollr/skrollr-*.scss'],
toCopyDirectly: ['./src/**/*', '!./src/**/*.js', '!./src/public/sass{,/**}']
};
gulp.task('clean', function(){
return gulp.src([paths.build], {
read: false
}).pipe(clean());
});
gulp.task('copy', ['clean'], function(){
return gulp.src(globs.toCopyDirectly).pipe(changed(paths.build)).pipe(gulp.dest(paths.build));
});
gulp.task('sass', ['clean'], function(){
return gulp.src(globs.sass).pipe(changed(paths.buildCss)).pipe(sass({
style: 'compressed',
compass: true
})).on('error', util.log).pipe(gulp.dest(paths.buildCss));
});
gulp.task('compileJS', ['clean'], function(){
return gulp.src(globs.js).pipe(changed(paths.build))/*.pipe(ls({
bare: true
})).on('error', util.log)*/.pipe(gulp.dest(paths.build));
});
gulp.task('optimizeJS', ['compileJS', 'copy'], function(){
rjs({
baseUrl: paths.buildPublic + '/scripts/bower_components',
paths: {
jquery: 'empty:',
requireLib: "requirejs/require"
},
mainConfigFile: paths.buildPublic + '/scripts/app.js',
include: ['requireLib', 'app'],
insertRequire: ['app'],
out: 'scripts/app.js',
preserveLicenseComments: false
}).pipe(uglify()).pipe(gulp.dest(paths.buildPublic));
});
gulp.task('buildHTML', ['copy'], function(){
return gulp.src(paths.build + '/views/home.tmpl').pipe(htmlReplace({
js: 'scripts/app.js'
})).pipe(gulp.dest(paths.build + '/views'));
});
gulp.task('test', []);
gulp.task('minimal', ['clean', 'compileJS', 'copy', 'sass']);
gulp.task('default', ['minimal', 'optimizeJS', 'buildHTML']);
gulp.task('dev', function() {
gulp.watch(globs.src, ['minimal']);
});