-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
75 lines (64 loc) · 1.88 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
var gulp = require("gulp");
var pump = require("pump");
var sass = require('gulp-sass')(require('sass'));
var pug = require("gulp-pug");
var rename = require("gulp-rename");
var connect = require("gulp-connect");
var calendar = require("./scripts/generate_calendar.js");
gulp.task("img", function(cb) {
pump([gulp.src("src/public/img/**/*"), gulp.dest("build/public/img")], cb);
});
gulp.task("fonts", function(cb) {
pump([gulp.src("src/public/fonts/*"), gulp.dest("build/public/fonts")], cb);
});
gulp.task("pdfs", function(cb) {
pump([gulp.src("src/public/*.pdf"), gulp.dest("build/public/")], cb);
});
gulp.task("favicon", function(cb) {
pump([gulp.src("src/favicon.ico"), gulp.dest("build")], cb);
});
gulp.task("sass", function() {
return gulp
.src("src/scss/**/*.scss")
.pipe(sass())
.pipe(gulp.dest("build/public/css"));
});
gulp.task("pug", ["calendar"], function() {
return gulp
.src("src/views/*.pug")
.pipe(
pug({
// allow imports in pug files via 'require'
locals: { require: require }
})
)
.pipe(
rename(function(path) {
if (path.basename != "index") {
path.dirname = path.basename;
path.basename = "index";
}
})
)
.pipe(gulp.dest("build"));
});
gulp.task("calendar", async () => {
await calendar.generate();
});
gulp.task("build", ["img", "sass", "pug", "fonts", "favicon", "pdfs"], function(cb) {
pump([gulp.src("src/public/*.js"), gulp.dest("build/public/")], cb);
});
gulp.task("serve", function() {
connect.server({
livereload: true,
port: 8080,
root: ["./build"]
});
});
gulp.task("stream", ["build", "serve"], function(cb) {
gulp.watch("src/scss/**/*.scss", ["build"]);
gulp.watch("src/public/*.js", ["build"]);
gulp.watch("src/public/img/**/*", ["build"]);
gulp.watch("src/views/**/*.pug", ["build"]);
});
gulp.task("default", ["build"]);