-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGulpfile.js
96 lines (83 loc) · 2.67 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
/*---------------------------------------------------------
Gulp Dependencies
--------------------------------------------------------*/
var gulp = require('gulp'),
sass = require('gulp-sass'),
concat = require('gulp-concat'),
minify = require('gulp-minify'),
sourcemaps = require('gulp-sourcemaps'),
plumber = require('gulp-plumber'),
plumberNotifier = require('gulp-plumber-notifier'),
stripCssComments = require('gulp-strip-css-comments'),
cleanCSS = require('gulp-clean-css'),
uglifycss = require('gulp-uglifycss'),
rename = require('gulp-rename');
/*---------------------------------------------------------
Required paths for Gulp
--------------------------------------------------------*/
var paths = {
scss: {
src: './scss/**/**/**/**/*.scss',
dest: './css/',
file: './scss/main.scss',
},
css: {
src: './css/*.css',
dest: './css/',
file: 'style.css',
},
cssMin: {
src: './css/*.css',
dest: './css/',
fileOg: '/css/style.css',
fileMin: 'min.style.css',
},
js: {
src: './assets/js/src/*.js',
dest: './assets/js/',
file: 'compiled.js',
}
};
/*---------------------------------------------------------
CSS/SCSS Tasks
--------------------------------------------------------*/
/* Configures all tasks to automate
----------------------------------*/
gulp.task('watch', function () {
gulp.watch(paths.scss.src, ['sass']);
gulp.watch(paths.css.src, ['clean']);
gulp.watch(paths.js.src, ['js-compile']);
});
/* Compiles all sass linking to prartials in source dir, concats, creates source map, and outputs
----------------------------------*/
gulp.task('sass', function () {
return gulp.src(paths.scss.file)
.pipe(plumberNotifier())
.pipe(sourcemaps.init())
.pipe(sass({ errLogToConsole: true }))
.pipe(concat(paths.css.file))
.pipe(plumber.stop())
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest(paths.scss.dest));
});
/* Cleans CSS Removes comments and minifies stylesheet
----------------------------------*/
gulp.task('clean', function () {
return gulp.src(paths.css.src)
.pipe(stripCssComments({ preserve: /(^#|^!)/ }))
.pipe(uglifycss())
.pipe(gulp.dest(paths.css.dest));
});
/*---------------------------------------------------------
JS Tasks
--------------------------------------------------------*/
/* Compiles all js files together and minifies
----------------------------------*/
gulp.task('js-compile', function () {
return gulp.src(paths.js.src)
.pipe(concat(paths.js.file))
.pipe(gulp.dest(paths.js.dest));
});
/*---------------------------------------------------------
Image Tasks
--------------------------------------------------------*/