3
3
const gulp = require ( 'gulp' ) ;
4
4
const $ = require ( 'gulp-load-plugins' ) ( ) ;
5
5
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
+
6
14
require ( 'es6-promise' ) . polyfill ( ) ;
7
15
8
16
const browserSync = require ( 'browser-sync' ) . create ( ) ;
17
+ const browserSync_baseDir = 'docs' ;
9
18
10
- const src_paths = {
19
+ const entry_paths = {
11
20
sass : [ 'sass/_flexbox-grid-mixins.scss' ] ,
12
21
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' ] ,
14
24
} ;
15
25
16
26
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' ]
19
37
} ;
20
38
21
39
function lint_sass ( ) {
22
- return gulp . src ( src_paths . sass )
40
+ return gulp . src ( entry_paths . sass , entry_paths . dart_sass )
23
41
. pipe ( $ . plumber ( {
24
42
errorHandler : function ( err ) {
25
43
console . log ( err . messageFormatted ) ;
@@ -46,27 +64,47 @@ function lint_sass() {
46
64
} ;
47
65
48
66
function docs_sass ( ) {
49
- return gulp . src ( src_paths . docs_sass )
67
+ return gulp . src ( entry_paths . docs_sass )
50
68
. pipe ( $ . plumber ( {
51
69
errorHandler : function ( err ) {
52
70
console . log ( err . messageFormatted ) ;
53
71
this . emit ( 'end' ) ;
54
72
}
55
73
} ) )
56
- . pipe ( $ . sass ( {
74
+ . pipe ( sass ( {
75
+ fiber : Fiber ,
57
76
outputStyle : 'expanded'
58
- } ) . on ( 'error' , $ . sass . logError ) )
77
+ } ) . on ( 'error' , sass . logError ) )
59
78
. pipe ( $ . autoprefixer ( {
60
79
cascade : false
61
80
} ) )
62
81
. pipe ( gulp . dest ( dest_paths . docs_css ) )
63
82
. pipe ( browserSync . stream ( ) ) ;
64
83
}
65
84
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
+
66
104
function browser_sync ( done ) {
67
105
browserSync . init ( {
68
106
server : {
69
- baseDir : dest_paths . browserSync
107
+ baseDir : browserSync_baseDir
70
108
} ,
71
109
reloadOnRestart : true
72
110
} ) ;
@@ -79,12 +117,15 @@ function watch_files(done) {
79
117
done ( ) ;
80
118
} ;
81
119
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 ) ;
85
125
}
86
126
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 ( ) ;
89
130
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