@@ -8,54 +8,58 @@ var gulp = require('gulp'),
8
8
browserSync = require ( 'browser-sync' ) . create ( ) ,
9
9
argv = require ( 'minimist' ) ( process . argv . slice ( 2 ) ) ;
10
10
11
+ function resolvePath ( pathInput ) {
12
+ return path . resolve ( pathInput ) . replace ( / \\ / g, "/" ) ;
13
+ }
14
+
11
15
/******************************************************
12
16
* COPY TASKS - stream assets from source to destination
13
17
******************************************************/
14
18
// JS copy
15
19
gulp . task ( 'pl-copy:js' , function ( ) {
16
- return gulp . src ( '**/*.js' , { cwd : path . resolve ( paths ( ) . source . js ) } )
17
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . js ) ) ) ;
20
+ return gulp . src ( '**/*.js' , { cwd : resolvePath ( paths ( ) . source . js ) } )
21
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . js ) ) ) ;
18
22
} ) ;
19
23
20
24
// Images copy
21
25
gulp . task ( 'pl-copy:img' , function ( ) {
22
- return gulp . src ( '**/*.*' , { cwd : path . resolve ( paths ( ) . source . images ) } )
23
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . images ) ) ) ;
26
+ return gulp . src ( '**/*.*' , { cwd : resolvePath ( paths ( ) . source . images ) } )
27
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . images ) ) ) ;
24
28
} ) ;
25
29
26
30
// Favicon copy
27
31
gulp . task ( 'pl-copy:favicon' , function ( ) {
28
- return gulp . src ( 'favicon.ico' , { cwd : path . resolve ( paths ( ) . source . root ) } )
29
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . root ) ) ) ;
32
+ return gulp . src ( 'favicon.ico' , { cwd : resolvePath ( paths ( ) . source . root ) } )
33
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . root ) ) ) ;
30
34
} ) ;
31
35
32
36
// Fonts copy
33
37
gulp . task ( 'pl-copy:font' , function ( ) {
34
- return gulp . src ( '*' , { cwd : path . resolve ( paths ( ) . source . fonts ) } )
35
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . fonts ) ) ) ;
38
+ return gulp . src ( '*' , { cwd : resolvePath ( paths ( ) . source . fonts ) } )
39
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . fonts ) ) ) ;
36
40
} ) ;
37
41
38
42
// CSS Copy
39
43
gulp . task ( 'pl-copy:css' , function ( ) {
40
- return gulp . src ( path . resolve ( paths ( ) . source . css , '*.css' ) )
41
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . css ) ) )
44
+ return gulp . src ( resolvePath ( paths ( ) . source . css , '*.css' ) )
45
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . css ) ) )
42
46
. pipe ( browserSync . stream ( ) ) ;
43
47
} ) ;
44
48
45
49
// Styleguide Copy everything but css
46
50
gulp . task ( 'pl-copy:styleguide' , function ( ) {
47
- return gulp . src ( path . resolve ( paths ( ) . source . styleguide , '**/!(*.css)' ) )
48
- . pipe ( gulp . dest ( path . resolve ( paths ( ) . public . root ) ) )
51
+ return gulp . src ( resolvePath ( paths ( ) . source . styleguide , '**/!(*.css)' ) )
52
+ . pipe ( gulp . dest ( resolvePath ( paths ( ) . public . root ) ) )
49
53
. pipe ( browserSync . stream ( ) ) ;
50
54
} ) ;
51
55
52
56
// Styleguide Copy and flatten css
53
57
gulp . task ( 'pl-copy:styleguide-css' , function ( ) {
54
- return gulp . src ( path . resolve ( paths ( ) . source . styleguide , '**/*.css' ) )
58
+ return gulp . src ( resolvePath ( paths ( ) . source . styleguide , '**/*.css' ) )
55
59
. pipe ( gulp . dest ( function ( file ) {
56
60
//flatten anything inside the styleguide into a single output dir per http://stackoverflow.com/a/34317320/1790362
57
61
file . path = path . join ( file . base , path . basename ( file . path ) ) ;
58
- return path . resolve ( path . join ( paths ( ) . public . styleguide , 'css' ) ) ;
62
+ return resolvePath ( path . join ( paths ( ) . public . styleguide , 'css' ) ) ;
59
63
} ) )
60
64
. pipe ( browserSync . stream ( ) ) ;
61
65
} ) ;
@@ -122,6 +126,11 @@ gulp.task('patternlab:build', gulp.series('pl-assets', build, function(done){
122
126
done ( ) ;
123
127
} ) ) ;
124
128
129
+ gulp . task ( 'patternlab:installplugin' , function ( done ) {
130
+ patternlab . installplugin ( argv . plugin ) ;
131
+ done ( ) ;
132
+ } ) ;
133
+
125
134
/******************************************************
126
135
* SERVER AND WATCH TASKS
127
136
******************************************************/
@@ -132,7 +141,7 @@ function getSupportedTemplateExtensions() {
132
141
}
133
142
function getTemplateWatches ( ) {
134
143
return getSupportedTemplateExtensions ( ) . map ( function ( dotExtension ) {
135
- return path . resolve ( paths ( ) . source . patterns , '**/*' + dotExtension ) ;
144
+ return resolvePath ( paths ( ) . source . patterns , '**/*' + dotExtension ) ;
136
145
} ) ;
137
146
}
138
147
@@ -145,17 +154,17 @@ function reloadCSS() {
145
154
}
146
155
147
156
function watch ( ) {
148
- gulp . watch ( path . resolve ( paths ( ) . source . css , '**/*.css' ) , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( 'pl-copy:css' , reloadCSS ) ) ;
149
- gulp . watch ( path . resolve ( paths ( ) . source . styleguide , '**/*.*' ) , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( 'pl-copy:styleguide' , 'pl-copy:styleguide-css' , reloadCSS ) ) ;
157
+ gulp . watch ( resolvePath ( paths ( ) . source . css , '**/*.css' ) , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( 'pl-copy:css' , reloadCSS ) ) ;
158
+ gulp . watch ( resolvePath ( paths ( ) . source . styleguide , '**/*.*' ) , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( 'pl-copy:styleguide' , 'pl-copy:styleguide-css' , reloadCSS ) ) ;
150
159
151
160
var patternWatches = [
152
- path . resolve ( paths ( ) . source . patterns , '**/*.json' ) ,
153
- path . resolve ( paths ( ) . source . patterns , '**/*.md' ) ,
154
- path . resolve ( paths ( ) . source . data , '*.json' ) ,
155
- path . resolve ( paths ( ) . source . fonts + '/*' ) ,
156
- path . resolve ( paths ( ) . source . images + '/*' ) ,
157
- path . resolve ( paths ( ) . source . meta , '*' ) ,
158
- path . resolve ( paths ( ) . source . annotations + '/*' )
161
+ resolvePath ( paths ( ) . source . patterns , '**/*.json' ) ,
162
+ resolvePath ( paths ( ) . source . patterns , '**/*.md' ) ,
163
+ resolvePath ( paths ( ) . source . data , '*.json' ) ,
164
+ resolvePath ( paths ( ) . source . fonts + '/*' ) ,
165
+ resolvePath ( paths ( ) . source . images + '/*' ) ,
166
+ resolvePath ( paths ( ) . source . meta , '*' ) ,
167
+ resolvePath ( paths ( ) . source . annotations + '/*' )
159
168
] . concat ( getTemplateWatches ( ) ) ;
160
169
161
170
gulp . watch ( patternWatches , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( build , reload ) ) ;
@@ -164,7 +173,7 @@ function watch() {
164
173
gulp . task ( 'patternlab:connect' , gulp . series ( function ( done ) {
165
174
browserSync . init ( {
166
175
server : {
167
- baseDir : path . resolve ( paths ( ) . public . root )
176
+ baseDir : resolvePath ( paths ( ) . public . root )
168
177
} ,
169
178
snippetOptions : {
170
179
// Ignore all HTML files within the templates folder
0 commit comments