-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
100 lines (85 loc) · 2.6 KB
/
Copy pathgulpfile.js
File metadata and controls
100 lines (85 loc) · 2.6 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
"use strict";
var gulp = require('gulp'),
connect = require('gulp-connect'),
sass = require('gulp-sass'),
pug = require('gulp-pug'),
concat = require('gulp-concat'),
autoprefixer = require('gulp-autoprefixer'),
cleanCSS = require('gulp-clean-css'),
del = require('del'),
deploy = require('gulp-gh-pages'),
util = require('gulp-util'),
uglify = require('gulp-uglify');
var BUILD_DIR = './build/'
, TEMPLATES_WATCH_PATH = ['./**/*.pug']
, STYLESHEETS_PATHs = ['./sources/**/*.scss', './sources/**/*.sass', './sources/**/*.css']
, JS_PATH = ['./sources/**/*.js', '!./sources/js/*']
, ASSETS_DIR = './assets/**/*'
, FONTS_DIR = './sources/fonts/*';
var dataFolder = './data/' + (util.env.data ? util.env.data : 'test');
var mainFile = './pages/' + (util.env.data ? util.env.data : 'test') + '.pug';
gulp.task('default', ['build', 'connect', 'watch']);
gulp.task('release', ['clean', 'pug', 'css-release', 'js-release', 'assets', 'fonts']);
gulp.task('build', ['clean', 'pug', 'css', 'js', 'assets', 'fonts']);
gulp.task('deploy', ['release'], function () {
return gulp.src("./build/**/*")
.pipe(deploy())
});
gulp.task('clean', function() {
return del(BUILD_DIR);
});
gulp.task('pug', function() {
return gulp.src(mainFile)
.pipe(pug())
.pipe(concat('index.html'))
.pipe(gulp.dest(BUILD_DIR))
});
gulp.task('css', function() {
return gulp.src(STYLESHEETS_PATHs)
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer())
.pipe(concat('style.css'))
.pipe(gulp.dest(BUILD_DIR))
.pipe(connect.reload());
});
gulp.task('css-release', function() {
return gulp.src(STYLESHEETS_PATHs)
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer())
.pipe(concat('style.css'))
.pipe(cleanCSS())
.pipe(gulp.dest(BUILD_DIR))
.pipe(connect.reload());
});
gulp.task('js', function() {
return gulp.src(JS_PATH)
.pipe(concat('main.js'))
.pipe(gulp.dest(BUILD_DIR))
.pipe(connect.reload());
});
gulp.task('js-release', function() {
return gulp.src(JS_PATH)
.pipe(concat('main.js'))
.pipe(uglify())
.pipe(gulp.dest(BUILD_DIR))
.pipe(connect.reload());
});
gulp.task('assets', function() {
return gulp.src([ASSETS_DIR, dataFolder + '/assets/**/*'])
.pipe(gulp.dest(BUILD_DIR))
.pipe(connect.reload());
});
gulp.task('fonts', function() {
return gulp.src(FONTS_DIR)
.pipe(gulp.dest(BUILD_DIR + 'fonts/'))
.pipe(connect.reload());
});
gulp.task('connect', function() {
connect.server({
root: BUILD_DIR,
livereload: true
});
});
gulp.task('watch', function() {
gulp.watch([TEMPLATES_WATCH_PATH, JS_PATH, STYLESHEETS_PATHs, ASSETS_DIR], ['pug', 'css', 'js', 'assets', 'fonts']);
});