-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
101 lines (86 loc) · 2.76 KB
/
gulpfile.js
File metadata and controls
101 lines (86 loc) · 2.76 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
var gulp = require('gulp'),
watch = require('gulp-watch'),
browserify = require('browserify'),
rename = require('gulp-rename'),
coffeeify = require('coffeeify'),
partialify = require('partialify'),
sass = require('gulp-sass'),
livereload = require('gulp-livereload'),
source = require('vinyl-source-stream');
var path_to_beaker_static = "../beaker/static/";
var path_to_beaker_staticfiles = "../beaker/staticfiles/";
var path_to_beaker_templates = "../beaker/templates/";
var paths = {
coffee: "./coffee/",
sass: "./sass/",
static: "./static/",
css: "./static/css/",
js: "./static/js/",
img: "./static/img/**",
templates: "./templates/"
};
var globs = {
js: "**/*.js",
coffee: "**/*.coffee",
html: "**/*.html",
scss: "**/*.scss",
css: "**/*.css",
all: "**/*.*"
};
gulp.task('coffee', function(){
var entry = paths.coffee + 'app.coffee';
return browserify({entries: entry, extensions: ['.coffee', '.html']})
.transform(partialify)
.transform(coffeeify)
.bundle()
.pipe(source("app.js"))
.pipe(gulp.dest(paths.js));
});
gulp.task('sass', function(){
return gulp.src(paths.sass + 'app.scss')
.pipe(sass())
.pipe(gulp.dest(paths.css));
});
gulp.task('build', ['coffee', 'sass']);
gulp.task('watch', function(){
watch({glob: paths.coffee + globs.coffee}, function(){
gulp.start('copy:js');
});
watch({glob: paths.coffee + globs.html}, function(){
gulp.start('copy:js');
});
watch({glob: paths.sass + globs.scss}, function(){
gulp.start('copy:css');
});
watch({glob: paths.templates + globs.html}, function(){
gulp.start('copy:templates');
});
});
gulp.task('copy:js', ['coffee'], function(){
gulp.src(paths.static + globs.js)
.pipe(gulp.dest(path_to_beaker_static));
return gulp.src(paths.static + globs.js)
.pipe(gulp.dest(path_to_beaker_staticfiles));
});
gulp.task('copy:css', ['sass'], function(){
gulp.src(paths.static + globs.css)
.pipe(gulp.dest(path_to_beaker_static));
return gulp.src(paths.static + globs.css)
.pipe(gulp.dest(path_to_beaker_staticfiles));
});
gulp.task('copy:img', function(){
gulp.src(paths.img).pipe(gulp.dest(path_to_beaker_static + 'img/'));
return gulp.src(paths.img).pipe(gulp.dest(path_to_beaker_staticfiles + 'img/'));
});
gulp.task('copy:templates', function(){
return gulp.src(paths.templates + globs.html)
.pipe(gulp.dest(path_to_beaker_templates));
});
gulp.task('copy', ['copy:js', 'copy:css', 'copy:img', 'copy:templates'], function(){
});
gulp.task('dev', ['build', 'copy'], function(){
return gulp.start('watch');
});
gulp.task('default', function() {
gulp.start('build');
});