-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgulpfile.js
More file actions
67 lines (61 loc) · 1.56 KB
/
gulpfile.js
File metadata and controls
67 lines (61 loc) · 1.56 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
const gulp = require('gulp');
const browserSync = require('browser-sync');
const del = require('del');
const gulpLoadPlugins = require('gulp-load-plugins');
const replace = require('gulp-replace');
const fs = require('fs');
const $ = gulpLoadPlugins();
const reload = browserSync.reload;
gulp.task('styles', () => {
return gulp
.src('examples/styles/*.scss')
.pipe($.plumber())
.pipe(
$.sass
.sync({
outputStyle: 'expanded',
precision: 10,
includePaths: ['.'],
})
.on('error', $.sass.logError),
)
.pipe(
$.autoprefixer({
browsers: ['> 1%', 'last 2 versions', 'Firefox ESR'],
}),
)
.pipe(gulp.dest('.tmp/styles'))
.pipe(
reload({
stream: true,
}),
);
});
gulp.task('clean', del.bind(null, ['.tmp']));
gulp.task('replaceScss', () => {
return gulp
.src('examples/*with-scss.html')
.pipe(
replace(/<!-- (.*).scss -->/g, function(s, filename) {
const style = fs.readFileSync(`./.tmp/styles/${filename}.css`, 'utf8');
return '<style amp-custom>' + style.replace(/\n/g, '') + '</style>';
}),
)
.pipe(gulp.dest('.tmp'));
});
gulp.task(
'serve',
gulp.series('clean', 'styles', 'replaceScss', () => {
browserSync({
notify: false,
port: 9000,
server: {
baseDir: ['.tmp', 'examples'],
},
});
gulp.watch(['examples/*.html']).on('change', reload);
gulp
.watch('examples/styles/*.scss', gulp.series('styles', 'replaceScss'))
.on('change', reload);
}),
);