-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
135 lines (117 loc) · 3.89 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
var gulp = require('gulp');
var browserSync = require('browser-sync');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var autoprefixer = require('gulp-autoprefixer');
var reload = browserSync.reload;
var minifyCss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var rename = require("gulp-rename");
const imagemin = require('gulp-imagemin');
var svgstore = require('gulp-svgstore');
var svgmin = require('gulp-svgmin');
var path = require('path');
var concat = require("gulp-concat");
// Static Server + watching scss/html files
gulp.task('serve', ['sass', 'js', 'compressImg', 'svgstore'], function() {
browserSync({
proxy: "https://2019-trust-indicators.test"
});
// Watch SCSS file for change to pass on to sass compiler,
gulp.watch('../assets/sass/*.{scss,sass}', ['sass']);
// Watch SCSS file for change to pass on to sass compiler,
gulp.watch('../assets/js/*.js', ['js']);
// run img compression when images added to directory
gulp.watch('../assets/img/*.*', ['compressImg']);
// run SVG when svg files added
gulp.watch('../assets/svg/*.svg', ['svgstore']);
// Watch our CSS file and reload when it's done compiling
gulp.watch("../dist/css/*.css").on('change', reload);
// Watch php file
gulp.watch("../*/*.php").on('change', reload);
// watch javascript files
gulp.watch("../dist/js/*.js").on('change', reload);
});
gulp.task('svgstore', function () {
return gulp
.src('../assets/svg/*.svg')
.pipe(svgmin(function (file) {
var prefix = path.basename(file.relative, path.extname(file.relative));
return {
plugins: [{
cleanupIDs: {
prefix: prefix + '-',
minify: true
}
}]
};
}))
.pipe(svgstore({ inlineSvg: true }))
.pipe(gulp.dest('../dist/svg/'));
});
/* gulp.task('sass', function () {
// gulp.src locates the source files for the process.
// This globbing function tells gulp to use all files
// ending with .scss or .sass within the scss folder.
return gulp.src('../stylesheets/*.{scss,sass}')
// Initializes sourcemaps
.pipe(sourcemaps.init())
// Converts Sass into CSS with Gulp Sass
.pipe(sass({
errLogToConsole: true
}))
// adds prefixes to whatever needs to get done
.pipe(autoprefixer())
// Writes sourcemaps into the CSS file
.pipe(sourcemaps.write())
// Outputs CSS files in the css folder
.pipe(gulp.dest('../'));
})*/
gulp.task('sass', function () {
processSASS('styles');
});
gulp.task('js', function() {
var jsFiles = '../assets/js/*.js',
jsDest = '../dist/js';
return gulp.src(jsFiles)
.pipe(concat('scripts.js'))
.pipe(gulp.dest(jsDest))
.pipe(rename('scripts.min.js'))
.pipe(uglify())
.pipe(gulp.dest(jsDest));
});
function compressJS(filename) {
rootPath = "../assets/js/";
src = "../assets/js/"+filename+".js";
dist = '../dist/js/';
return gulp.src(src)
.pipe(uglify())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest(dist));
}
gulp.task('compressImg', function() {
return gulp.src('../assets/img/*')
.pipe(imagemin())
.pipe(gulp.dest('../dist/img'));
});
function processSASS(filename) {
return gulp.src('../assets/sass/'+filename+'.{scss,sass}')
// Converts Sass into CSS with Gulp Sass
.pipe(sass({
errLogToConsole: true
}))
// adds prefixes to whatever needs to get done
.pipe(autoprefixer())
// minify the CSS
.pipe(minifyCss())
// rename to add .min
.pipe(rename({
suffix: '.min'
}))
// Outputs CSS files in the css folder
.pipe(gulp.dest('../dist/css/'));
}
// Creating a default task
gulp.task('default', ['serve']);