2
2
3
3
var pkg = require ( './package.json' ) ,
4
4
gulp = require ( 'gulp' ) ,
5
+ path = require ( 'path' ) ,
5
6
eol = require ( 'os' ) . EOL ,
6
7
del = require ( 'del' ) ,
7
8
strip_banner = require ( 'gulp-strip-banner' ) ,
@@ -20,12 +21,16 @@ var banner = [ '/** ',
20
21
' * Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.' ,
21
22
' * ' , ' **/' ] . join ( eol ) ;
22
23
24
+ function paths ( ) {
25
+ return require ( './config.json' ) . paths ;
26
+ }
27
+
23
28
//load patternlab-node tasks
24
29
gulp . loadTasks ( __dirname + '/builder/patternlab_gulp.js' ) ;
25
30
26
31
//clean patterns dir
27
32
gulp . task ( 'clean' , function ( cb ) {
28
- del . sync ( [ './ public/ patterns/*' ] , { force : true } ) ;
33
+ del . sync ( [ path . resolve ( paths ( ) . public . patterns , '*' ) ] , { force : true } ) ;
29
34
cb ( ) ;
30
35
} ) ;
31
36
@@ -53,51 +58,59 @@ gulp.task('banner', function(){
53
58
. pipe ( gulp . dest ( './builder' ) ) ;
54
59
} ) ;
55
60
61
+
56
62
//copy tasks
63
+
57
64
gulp . task ( 'cp:js' , function ( ) {
58
- return gulp . src ( '**/*.js' , { cwd :'./ source/js' } )
59
- . pipe ( gulp . dest ( './ public/js' ) ) ;
65
+ return gulp . src ( '**/*.js' , { cwd :paths ( ) . source . js } )
66
+ . pipe ( gulp . dest ( paths ( ) . public . js ) ) ;
60
67
} ) ;
68
+
61
69
gulp . task ( 'cp:img' , function ( ) {
62
70
return gulp . src (
63
71
[ '**/*.gif' , '**/*.png' , '**/*.jpg' , '**/*.jpeg' ] ,
64
- { cwd :'./ source/ images' } )
65
- . pipe ( gulp . dest ( './ public/ images' ) ) ;
72
+ { cwd :paths ( ) . source . images } )
73
+ . pipe ( gulp . dest ( paths ( ) . public . images ) ) ;
66
74
} ) ;
75
+
67
76
gulp . task ( 'cp:font' , function ( ) {
68
- return gulp . src ( '*' , { cwd :'./source/fonts' } )
69
- . pipe ( gulp . dest ( './public/fonts' ) ) ;
70
- } ) ; ;
77
+ return gulp . src ( '*' , { cwd :paths ( ) . source . fonts } )
78
+ . pipe ( gulp . dest ( paths ( ) . public . images ) ) ;
79
+ } ) ;
80
+
71
81
gulp . task ( 'cp:data' , function ( ) {
72
- return gulp . src ( 'annotations.js' , { cwd :'./ source/_data' } )
73
- . pipe ( gulp . dest ( './ public/ data' ) ) ;
82
+ return gulp . src ( 'annotations.js' , { cwd :paths ( ) . source . data } )
83
+ . pipe ( gulp . dest ( paths ( ) . public . data ) ) ;
74
84
} ) ;
85
+
75
86
gulp . task ( 'cp:css' , function ( ) {
76
- return gulp . src ( './ source/ css/ style.css')
77
- . pipe ( gulp . dest ( './ public/ css' ) )
87
+ return gulp . src ( path . resolve ( paths ( ) . source . css , ' style.css') )
88
+ . pipe ( gulp . dest ( paths ( ) . public . css ) )
78
89
. pipe ( browserSync . stream ( ) ) ;
79
90
} ) ;
80
91
81
92
//server and watch tasks
82
93
gulp . task ( 'connect' , [ 'lab' ] , function ( ) {
83
94
browserSync . init ( {
84
95
server : {
85
- baseDir : './ public/'
96
+ baseDir : paths ( ) . public . root
86
97
}
87
98
} ) ;
88
- gulp . watch ( './source/ css/ style.css', [ 'cp:css' ] ) ;
99
+ gulp . watch ( path . resolve ( paths ( ) . public . css , ' style.css') , [ 'cp:css' ] ) ;
89
100
90
101
//suggested watches if you use scss
91
102
// gulp.watch('./source/css/**/*.scss', ['sass:style']);
92
103
// gulp.watch('./public/styleguide/*.scss', ['sass:styleguide']);
93
104
94
- gulp . watch ( [
95
- './source/_patterns/**/*.mustache' ,
96
- './source/_patterns/**/*.json' ,
97
- './source/_data/*.json' ] ,
98
- [ 'lab-pipe' ] , function ( ) {
99
- browserSync . reload ( ) ;
100
- } ) ;
105
+ gulp . watch (
106
+ [
107
+ path . resolve ( paths ( ) . source . patterns , '**/*.mustache' ) ,
108
+ path . resolve ( paths ( ) . source . patterns , '**/*.json' ) ,
109
+ path . resolve ( paths ( ) . source . data , '*.json' )
110
+ ] ,
111
+ [ 'lab-pipe' ] ,
112
+ function ( ) { browserSync . reload ( ) ; }
113
+ ) ;
101
114
102
115
} ) ;
103
116
0 commit comments