@@ -8,54 +8,58 @@ var gulp = require('gulp'),
88 browserSync = require ( 'browser-sync' ) . create ( ) ,
99 argv = require ( 'minimist' ) ( process . argv . slice ( 2 ) ) ;
1010
11+ function resolvePath ( pathInput ) {
12+ return path . resolve ( pathInput ) . replace ( / \\ / g, "/" ) ;
13+ }
14+
1115/******************************************************
1216 * COPY TASKS - stream assets from source to destination
1317******************************************************/
1418// JS copy
1519gulp . 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 ) ) ) ;
1822} ) ;
1923
2024// Images copy
2125gulp . 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 ) ) ) ;
2428} ) ;
2529
2630// Favicon copy
2731gulp . 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 ) ) ) ;
3034} ) ;
3135
3236// Fonts copy
3337gulp . 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 ) ) ) ;
3640} ) ;
3741
3842// CSS Copy
3943gulp . 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 ) ) )
4246 . pipe ( browserSync . stream ( ) ) ;
4347} ) ;
4448
4549// Styleguide Copy everything but css
4650gulp . 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 ) ) )
4953 . pipe ( browserSync . stream ( ) ) ;
5054} ) ;
5155
5256// Styleguide Copy and flatten css
5357gulp . 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' ) )
5559 . pipe ( gulp . dest ( function ( file ) {
5660 //flatten anything inside the styleguide into a single output dir per http://stackoverflow.com/a/34317320/1790362
5761 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' ) ) ;
5963 } ) )
6064 . pipe ( browserSync . stream ( ) ) ;
6165} ) ;
@@ -122,6 +126,11 @@ gulp.task('patternlab:build', gulp.series('pl-assets', build, function(done){
122126 done ( ) ;
123127} ) ) ;
124128
129+ gulp . task ( 'patternlab:installplugin' , function ( done ) {
130+ patternlab . installplugin ( argv . plugin ) ;
131+ done ( ) ;
132+ } ) ;
133+
125134/******************************************************
126135 * SERVER AND WATCH TASKS
127136******************************************************/
@@ -132,7 +141,7 @@ function getSupportedTemplateExtensions() {
132141}
133142function getTemplateWatches ( ) {
134143 return getSupportedTemplateExtensions ( ) . map ( function ( dotExtension ) {
135- return path . resolve ( paths ( ) . source . patterns , '**/*' + dotExtension ) ;
144+ return resolvePath ( paths ( ) . source . patterns , '**/*' + dotExtension ) ;
136145 } ) ;
137146}
138147
@@ -145,17 +154,17 @@ function reloadCSS() {
145154}
146155
147156function 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 ) ) ;
150159
151160 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 + '/*' )
159168 ] . concat ( getTemplateWatches ( ) ) ;
160169
161170 gulp . watch ( patternWatches , { awaitWriteFinish : true } ) . on ( 'change' , gulp . series ( build , reload ) ) ;
@@ -164,7 +173,7 @@ function watch() {
164173gulp . task ( 'patternlab:connect' , gulp . series ( function ( done ) {
165174 browserSync . init ( {
166175 server : {
167- baseDir : path . resolve ( paths ( ) . public . root )
176+ baseDir : resolvePath ( paths ( ) . public . root )
168177 } ,
169178 snippetOptions : {
170179 // Ignore all HTML files within the templates folder
0 commit comments