Skip to content

Commit 9dcfc63

Browse files
committed
make the gulpfile use the paths from the config JSON
1 parent d585257 commit 9dcfc63

File tree

2 files changed

+45
-23
lines changed

2 files changed

+45
-23
lines changed

config.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,21 @@
44
"root": "./source/",
55
"patterns" : "./source/_patterns/",
66
"data" : "./source/_data/",
7-
"patternlabFiles" : "./source/_patternlab-files/"
7+
"patternlabFiles" : "./source/_patternlab-files/",
8+
"js" : "./source/js",
9+
"images" : "./source/images",
10+
"fonts" : "./source/fonts",
11+
"css" : "./source/css/"
812
},
913
"public" : {
1014
"root" : "./public/",
1115
"patterns" : "./public/patterns/",
12-
"styleguide" : "./public/styleguide/"
16+
"data" : "./public/data/",
17+
"styleguide" : "./public/styleguide/",
18+
"js" : "./public/js",
19+
"images" : "./public/images",
20+
"fonts" : "./public/fonts",
21+
"css" : "./public/css"
1322
}
1423
},
1524
"styleGuideExcludes": [

gulpfile.js

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var pkg = require('./package.json'),
44
gulp = require('gulp'),
5+
path = require('path'),
56
eol = require('os').EOL,
67
del = require('del'),
78
strip_banner = require('gulp-strip-banner'),
@@ -20,12 +21,16 @@ var banner = [ '/** ',
2021
' * Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.',
2122
' * ', ' **/'].join(eol);
2223

24+
function paths () {
25+
return require('./config.json').paths;
26+
}
27+
2328
//load patternlab-node tasks
2429
gulp.loadTasks(__dirname+'/builder/patternlab_gulp.js');
2530

2631
//clean patterns dir
2732
gulp.task('clean', function(cb){
28-
del.sync(['./public/patterns/*'], {force: true});
33+
del.sync([path.resolve(paths().public.patterns, '*')], {force: true});
2934
cb();
3035
});
3136

@@ -53,51 +58,59 @@ gulp.task('banner', function(){
5358
.pipe(gulp.dest('./builder'));
5459
});
5560

61+
5662
//copy tasks
63+
5764
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));
6067
});
68+
6169
gulp.task('cp:img', function(){
6270
return gulp.src(
6371
[ '**/*.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));
6674
});
75+
6776
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+
7181
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));
7484
});
85+
7586
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))
7889
.pipe(browserSync.stream());
7990
});
8091

8192
//server and watch tasks
8293
gulp.task('connect', ['lab'], function(){
8394
browserSync.init({
8495
server: {
85-
baseDir: './public/'
96+
baseDir: paths().public.root
8697
}
8798
});
88-
gulp.watch('./source/css/style.css', ['cp:css']);
99+
gulp.watch(path.resolve(paths().public.css, 'style.css'), ['cp:css']);
89100

90101
//suggested watches if you use scss
91102
// gulp.watch('./source/css/**/*.scss', ['sass:style']);
92103
// gulp.watch('./public/styleguide/*.scss', ['sass:styleguide']);
93104

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+
);
101114

102115
});
103116

0 commit comments

Comments
 (0)