3
3
const gulp = require ( 'gulp' )
4
4
const pkg = require ( './package.json' )
5
5
6
- const autoprefixer = require ( 'gulp- autoprefixer' )
6
+ const autoprefixer = require ( 'autoprefixer' )
7
7
const cssnano = require ( 'gulp-cssnano' )
8
8
const header = require ( 'gulp-header' )
9
9
const notify = require ( 'gulp-notify' )
10
+ const postcss = require ( 'gulp-postcss' )
10
11
const rename = require ( 'gulp-rename' )
11
- const sass = require ( 'gulp-sass' )
12
+ const sass = require ( 'gulp-dart- sass' )
12
13
const sourcemaps = require ( 'gulp-sourcemaps' )
13
14
const stripComments = require ( 'gulp-strip-css-comments' )
14
15
16
+ const cssDestDir = './lib'
17
+ const cssDestFile = 'Bits.css'
18
+ const cssDestFileMin = 'Bits.min.css'
19
+ const sassEntryFile = './src/styles/main.scss'
20
+ const sassSourceDir = './src/styles'
21
+
15
22
// Set banner template
16
23
const banner = [
17
24
'/*' ,
@@ -27,58 +34,41 @@ const banner = [
27
34
'' ,
28
35
] . join ( '\n' )
29
36
30
- // Get configuration files
31
- const assetsConfig = {
32
- stylesheets : {
33
- main : './src/styles/main.scss' ,
34
- destDir : './lib' ,
35
- buildFile : 'Bits.css' ,
36
- buildFileMin : 'Bits.min.css' ,
37
- } ,
38
- }
39
-
40
- gulp . task ( 'compile_all' , [ 'compile_stylesheets' ] )
41
-
42
- gulp . task ( 'compile_stylesheets' , ( ) => {
43
- let config = assetsConfig . stylesheets
44
-
37
+ const compileScss = ( ) => {
45
38
return gulp
46
- . src ( [ config . main ] )
47
- . pipe (
48
- sass ( ) . on ( 'error' , err => {
49
- return notify ( ) . write ( err )
50
- } ) ,
51
- )
52
- . pipe ( stripComments ( ) )
53
- . pipe (
54
- autoprefixer ( {
55
- cascade : false ,
56
- } ) ,
57
- )
39
+ . src ( sassEntryFile )
40
+ . pipe ( sass ( ) . on ( 'error' , sass . logError ) )
58
41
. pipe (
59
42
header ( banner , {
60
- buildFile : config . buildFile ,
61
43
pkg : pkg ,
62
- } ) ,
44
+ } )
63
45
)
64
- . pipe ( rename ( config . buildFile ) )
65
- . pipe ( gulp . dest ( config . destDir ) )
46
+ . pipe ( rename ( cssDestFile ) )
47
+ . pipe ( gulp . dest ( cssDestDir ) )
48
+ . pipe ( stripComments ( ) )
66
49
. pipe ( sourcemaps . init ( ) )
67
50
. pipe ( cssnano ( ) )
51
+ . pipe (
52
+ postcss ( [
53
+ autoprefixer ( {
54
+ flexbox : true ,
55
+ grid : true ,
56
+ } ) ,
57
+ ] )
58
+ )
68
59
. pipe (
69
60
header ( banner , {
70
- buildFile : config . buildFile ,
71
61
pkg : pkg ,
72
- } ) ,
62
+ } )
73
63
)
74
- . pipe ( rename ( config . buildFileMin ) )
64
+ . pipe ( rename ( cssDestFileMin ) )
75
65
. pipe ( sourcemaps . write ( '.' ) )
76
- . pipe ( gulp . dest ( config . destDir ) )
77
- . pipe ( notify ( ` ${ pkg . name } Gulp: stylesheets completed` ) )
78
- } )
66
+ . pipe ( gulp . dest ( cssDestDir ) )
67
+ . pipe ( notify ( 'Sass compiled! ヽ(゜∇゜)ノ' ) )
68
+ }
79
69
80
- gulp . task ( 'watch' , ( ) => {
81
- gulp . watch ( './src/**/*.scss' , [ 'compile_stylesheets' ] )
82
- } )
70
+ const watch = ( ) => gulp . watch ( sassSourceDir + '/**/*' , compileScss )
83
71
84
- gulp . task ( 'default' , [ 'compile_all' , 'watch' ] )
72
+ gulp . task ( 'build' , gulp . series ( compileScss ) )
73
+ gulp . task ( 'start' , gulp . series ( watch ) )
74
+ gulp . task ( 'watch' , gulp . series ( watch ) )
0 commit comments