Skip to content

Commit f27bfd0

Browse files
committed
chore: add dart sass workfows with gulpfile.js
1 parent 11c51f9 commit f27bfd0

File tree

1 file changed

+56
-15
lines changed

1 file changed

+56
-15
lines changed

gulpfile.js

Lines changed: 56 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,41 @@
33
const gulp = require('gulp');
44
const $ = require('gulp-load-plugins')();
55

6+
var Fiber = require('fibers');
7+
8+
var sass = require('gulp-sass');
9+
sass.compiler = require('node-sass');
10+
11+
var dart_sass = require('gulp-sass');
12+
dart_sass.compiler = require('sass');
13+
614
require('es6-promise').polyfill();
715

816
const browserSync = require('browser-sync').create();
17+
const browserSync_baseDir = 'docs';
918

10-
const src_paths = {
19+
const entry_paths = {
1120
sass: ['sass/_flexbox-grid-mixins.scss'],
1221
docs_sass: ['docs/sass/*.scss'],
13-
docs_static: ['docs/*.html', 'docs/**/*.html']
22+
dart_sass: ['dart-sass/_flexbox-grid-mixins.scss'],
23+
docs_dart_sass: ['docs/dart-sass/*.scss'],
1424
};
1525

1626
const dest_paths = {
17-
browserSync: 'docs',
18-
docs_css: 'docs/css/'
27+
docs_css: 'docs/css/',
28+
docs_css_dart_sass: 'docs/css-dart-sass/'
29+
};
30+
31+
const watch_paths = {
32+
sass: ['sass/_flexbox-grid-mixins.scss'],
33+
docs_sass: ['docs/sass/*.scss', 'docs/sass/**/*.scss'],
34+
dart_sass: ['dart-sass/_flexbox-grid-mixins.scss'],
35+
docs_dart_sass: ['docs/dart-sass/*.scss', 'docs/dart-sass/**/*.scss'],
36+
docs_static: ['docs/*.html', 'docs/**/*.html']
1937
};
2038

2139
function lint_sass() {
22-
return gulp.src(src_paths.sass)
40+
return gulp.src(entry_paths.sass, entry_paths.dart_sass)
2341
.pipe($.plumber({
2442
errorHandler: function(err) {
2543
console.log(err.messageFormatted);
@@ -46,27 +64,47 @@ function lint_sass() {
4664
};
4765

4866
function docs_sass() {
49-
return gulp.src(src_paths.docs_sass)
67+
return gulp.src(entry_paths.docs_sass)
5068
.pipe($.plumber({
5169
errorHandler: function(err) {
5270
console.log(err.messageFormatted);
5371
this.emit('end');
5472
}
5573
}))
56-
.pipe($.sass({
74+
.pipe(sass({
75+
fiber: Fiber,
5776
outputStyle: 'expanded'
58-
}).on( 'error', $.sass.logError ) )
77+
}).on( 'error', sass.logError ) )
5978
.pipe($.autoprefixer({
6079
cascade: false
6180
}))
6281
.pipe(gulp.dest(dest_paths.docs_css))
6382
.pipe(browserSync.stream());
6483
}
6584

85+
function docs_dart_sass() {
86+
return gulp.src(entry_paths.docs_dart_sass)
87+
.pipe($.plumber({
88+
errorHandler: function(err) {
89+
console.log(err.messageFormatted);
90+
this.emit('end');
91+
}
92+
}))
93+
.pipe(dart_sass({
94+
fiber: Fiber,
95+
outputStyle: 'expanded'
96+
}).on( 'error', dart_sass.logError ) )
97+
.pipe($.autoprefixer({
98+
cascade: false
99+
}))
100+
.pipe(gulp.dest(dest_paths.docs_css_dart_sass))
101+
.pipe(browserSync.stream());
102+
}
103+
66104
function browser_sync(done) {
67105
browserSync.init({
68106
server: {
69-
baseDir: dest_paths.browserSync
107+
baseDir: browserSync_baseDir
70108
},
71109
reloadOnRestart: true
72110
});
@@ -79,12 +117,15 @@ function watch_files(done) {
79117
done();
80118
};
81119

82-
gulp.watch(src_paths.sass).on('change', gulp.series(lint_sass, docs_sass, browserReload));
83-
gulp.watch(src_paths.docs_sass).on('change', gulp.series(lint_sass, docs_sass, browserReload));
84-
gulp.watch(src_paths.docs_static).on('change', browserReload);
120+
gulp.watch(watch_paths.sass, { usePolling: true }).on('change', gulp.series(lint_sass, docs_sass, browserReload));
121+
gulp.watch(watch_paths.docs_sass, { usePolling: true }).on('change', gulp.series(lint_sass, docs_sass, browserReload));
122+
gulp.watch(watch_paths.dart_sass, { usePolling: true }).on('change', gulp.series(lint_sass, docs_dart_sass, browserReload));
123+
gulp.watch(watch_paths.docs_dart_sass, { usePolling: true }).on('change', gulp.series(lint_sass, docs_dart_sass, browserReload));
124+
gulp.watch(watch_paths.docs_static, { usePolling: true }).on('change', browserReload);
85125
}
86126

87-
exports.docs_sass = docs_sass;
88-
exports.lint = lint_sass;
127+
exports.docs_sass = docs_sass();
128+
exports.docs_dart_sass = docs_dart_sass();
129+
exports.lint = lint_sass();
89130
exports.serve = gulp.series(browser_sync, watch_files);
90-
exports.default = gulp.series(lint_sass, docs_sass);
131+
exports.default = gulp.series(lint_sass, docs_sass, docs_dart_sass);

0 commit comments

Comments
 (0)