-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
93 lines (79 loc) · 2.16 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
var gulp = require('gulp');
var plugins = require('gulp-load-plugins');
var browser = require('browser-sync');
var rimraf = require('rimraf');
var $ = plugins();
// Visual tests task
gulp.task('visual', gulp.series(cleanVisual, sassVisual, serverVisual, watchVisual));
// Docs task
gulp.task('docs', gulp.series(sassDocs, serverDocs, watchDocs));
/////////////////
// Visual Testing
/////////////////
// Clean the visual test css files
function cleanVisual(done) {
rimraf('tests/visual/**/*.css', done);
}
// Compile visual test Sass files
function sassVisual() {
return gulp.src('tests/visual/**/*.scss')
.pipe($.sass({
includePaths: ['sass'],
outputStyle: 'expanded'
}).on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: [ "last 2 versions", "ie >= 10", "ios >= 7" ]
}))
.pipe(gulp.dest(function (file) {
return file.base;
}))
.pipe(browser.reload({ stream: true }));
}
// Start a server for visual tests
function serverVisual(done) {
browser.init({
server: 'tests/visual',
port: 8000,
directory: true
});
done();
}
// Watch for changes
function watchVisual() {
gulp.watch(['sass/**/*.scss', 'tests/visual/**/*.scss']).on('all', sassVisual);
gulp.watch('tests/visual/**/*.html').on('all', gulp.series(browser.reload));
}
/////////////
// Docs tasks
/////////////
// Compile Docs Sass files
function sassDocs() {
return gulp.src('docs/assets/sass/**/*.scss')
.pipe($.sass({
includePaths: ['sass'],
outputStyle: 'expanded'
}).on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: [ "last 2 versions", "ie >= 10", "ios >= 7" ]
}))
.pipe(gulp.dest('docs/assets/css'))
.pipe(browser.reload({ stream: true }));
}
// Start a server for the docs
function serverDocs(done) {
browser.init({
server: 'docs',
port: 4000
});
done();
}
// Watch for changes
function watchDocs() {
gulp.watch(['sass/**/*.scss', 'docs/assets/sass/**/*.scss']).on('all', sassDocs);
gulp.watch(['docs/**/*.md', 'docs/**/*.html']).on('all', gulp.series(browser.reload));
}
// Reload the browser with BrowserSync
function reload(done) {
browser.reload();
done();
}