-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgulpfile.js
98 lines (88 loc) · 2.85 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
// Main Gulp
var gulp = require("gulp");
// Custom Gulp tasks
var clean = require("gulp-clean");
var watch = require("gulp-watch");
var jade = require("gulp-jade");
var scss = require("gulp-sass");
var concat = require("gulp-concat");
var plumber = require("gulp-plumber");
var gulpif = require("gulp-if");
var autoprefixer = require('gulp-autoprefixer');
var browserSync = require("browser-sync");
var reload = browserSync.reload;
// Paths
var paths = {};
paths.app = "app/";
paths.dist = "dist/";
paths.scss = paths.app + "styles/**/*.scss";
paths.fonts = paths.app + "fonts/**/*.*";
paths.images = paths.app + "images/**/*.*";
paths.scripts = paths.app + "scripts/**/*.js";
paths.templates = paths.app + "templates/**/*.*";
paths.vendor = paths.app + "vendor/**/*.*";
// Delete the dist directory
gulp.task("clean", function () {
return gulp.src(paths.dist).pipe(clean());
});
gulp.task("jade", function () {
return gulp.src(paths.templates)
.pipe(plumber())
.pipe(jade({ pretty: true }))
.pipe(gulp.dest(paths.dist + "templates/"))
.pipe(gulpif(paths.dist, reload({ stream: true })));
});
gulp.task("scss", function () {
return gulp.src(paths.app + "styles/main.scss")
.pipe(plumber())
.pipe(scss({ style: "expanded" }))
.pipe(gulp.dest(paths.dist + "styles/"))
.pipe(gulpif(paths.dist, reload({ stream: true })));
});
gulp.task("autoprefixer", ["scss"], function () {
return gulp.src(paths.dist + "styles/main.css")
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest(paths.dist + "styles/"));
});
// Copy scripts
gulp.task("copyScripts", function () {
gulp.src(paths.scripts)
.pipe(concat("application.js"))
.pipe(gulp.dest(paths.dist + "scripts/"));
});
// Copy vendor
gulp.task("copyVendor", function () {
gulp.src(paths.vendor)
.pipe(gulp.dest(paths.dist + "vendor/"));
});
// Copy fonts
gulp.task("copyFonts", function () {
gulp.src(paths.fonts)
.pipe(gulp.dest(paths.dist + "fonts/"));
});
// Copy images
gulp.task("copyImages", function () {
gulp.src(paths.images)
.pipe(gulp.dest(paths.dist + "images/"));
});
// Server
gulp.task("browser-sync", function () {
browserSync({
server: {
baseDir: paths.dist
},
notify: false
});
});
// Copy all assets
gulp.task("copy", ["copyVendor", "copyFonts", "copyImages", "copyScripts"]);
// Default
gulp.task("dist", ["jade", "autoprefixer", "copy"]);
// Watch
gulp.task("default", ["dist", "browser-sync"], function () {
gulp.watch(paths.templates, ["jade", browserSync.reload]);
gulp.watch(paths.scss, ["autoprefixer", browserSync.reload]);
gulp.watch(paths.images, ["copyImages", browserSync.reload]);
gulp.watch(paths.scripts, ["copyScripts", browserSync.reload]);
gulp.watch(paths.fonts, ["copyFonts", browserSync.reload]);
});