Skip to content

Commit 9759d4b

Browse files
author
Sebastian Henneberg
committed
prevented composite tasks from breaking if dependent tasks are not selected, closes #16
1 parent 635df15 commit 9759d4b

9 files changed

+56
-36
lines changed

index.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ module.exports = function(gulp, tasks, config) {
3636
}
3737

3838
if (tasks.indexOf('index') !== -1) {
39-
require('./tasks/index')(gulp, config.bases.dist, config.app.index, config.appName);
39+
require('./tasks/index')(gulp, tasks, config.bases.dist, config.app.index, config.appName);
4040
}
4141

4242
if (tasks.indexOf('jshint') !== -1) {
4343
require('./tasks/jshint')(gulp, config.app.alljs);
4444
}
4545

4646
if (tasks.indexOf('karma') !== -1) {
47-
require('./tasks/karma')(gulp, config.dirname);
47+
require('./tasks/karma')(gulp, tasks, config.dirname);
4848
}
4949

5050
if (tasks.indexOf('mavenDeploy') !== -1) {
@@ -72,7 +72,7 @@ module.exports = function(gulp, tasks, config) {
7272
}
7373

7474
if (tasks.indexOf('sass') !== -1) {
75-
require('./tasks/sass')(gulp, config.app.scss, config.dist.css, config.env.rev, config.dist.fonts, config.sourceMapsPath);
75+
require('./tasks/sass')(gulp, tasks, config.app.scss, config.dist.css, config.env.rev, config.dist.fonts, config.sourceMapsPath);
7676
}
7777

7878
if (tasks.indexOf('scripts') !== -1) {
@@ -84,19 +84,19 @@ module.exports = function(gulp, tasks, config) {
8484
}
8585

8686
if (tasks.indexOf('vendorFonts') !== -1) {
87-
require('./tasks/vendorFonts')(gulp, config.debug, config.dist.fonts, config.env.rev);
87+
require('./tasks/vendorFonts')(gulp, tasks, config.debug, config.dist.fonts, config.env.rev);
8888
}
8989

9090
if (tasks.indexOf('vendorScripts') !== -1) {
91-
require('./tasks/vendorScripts')(gulp, config.dist.js, config.sourceMapsPath, config.debug, config.env.rev);
91+
require('./tasks/vendorScripts')(gulp, tasks, config.dist.js, config.sourceMapsPath, config.debug, config.env.rev);
9292
}
9393

9494
if (tasks.indexOf('vendorStyles') !== -1) {
95-
require('./tasks/vendorStyles')(gulp, config.dist.css, config.sourceMapsPath, config.debug, config.env.rev);
95+
require('./tasks/vendorStyles')(gulp, tasks, config.dist.css, config.sourceMapsPath, config.debug, config.env.rev);
9696
}
9797

9898
if (tasks.indexOf('watch') !== -1) {
99-
require('./tasks/watch')(gulp, config);
99+
require('./tasks/watch')(gulp, tasks, config);
100100
}
101101

102102
};

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
"jshint-stylish": "^2.0.1",
6868
"karma": "^0.12.36",
6969
"main-bower-files": "^2.8.0",
70-
"run-sequence": "^1.1.1"
70+
"run-sequence": "^1.1.1",
71+
"underscore": "^1.8.3"
7172
}
7273
}

tasks/index.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ var extend = require('extend'),
44
gulpInject = require('gulp-inject'),
55
minifyInline = require('gulp-minify-inline'),
66
minifyHtml = require('gulp-minify-html'),
7-
preprocess = require('gulp-preprocess');
7+
preprocess = require('gulp-preprocess'),
8+
_ = require('underscore');
89

9-
module.exports = function(gulp, dest, index, appName) {
10+
module.exports = function(gulp, tasks, dest, index, appName) {
1011
function injectIndex() {
1112
// don't read, just insert paths
1213
var srcOptions = {
@@ -44,6 +45,6 @@ module.exports = function(gulp, dest, index, appName) {
4445
gulp.task('justIndex', injectIndex);
4546

4647
// use this initial building
47-
gulp.task('index', ['partials', 'configScripts', 'scripts', 'vendorScripts', 'styles', 'vendorStyles'], injectIndex);
48+
var mergedTasks = _.intersection(tasks, ['partials', 'configScripts', 'scripts', 'vendorScripts', 'styles', 'vendorStyles']);
49+
gulp.task('index', mergedTasks, injectIndex);
4850
};
49-

tasks/karma.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
'use strict';
22

33
var karma = require('karma').server,
4-
runSequence = require('run-sequence');
4+
runSequence = require('run-sequence'),
5+
_ = require('underscore');
56

67

7-
module.exports = function(gulp, config) {
8+
module.exports = function(gulp, tasks, config) {
89
var configFile = config + '/karma.conf.js';
910
var browsers = ['PhantomJS', 'Firefox', 'Chrome'];
1011

@@ -37,17 +38,17 @@ module.exports = function(gulp, config) {
3738
});
3839
});
3940

41+
var mergedTasks = _.intersection(tasks, ['config', 'partials', 'vendorScripts']);
42+
4043
gulp.task('test', function() {
41-
runSequence(['config', 'partials', 'vendorScripts'], 'karma');
44+
runSequence(mergedTasks, 'karma');
4245
});
4346

4447
gulp.task('test:all', function() {
45-
runSequence(['config', 'partials', 'vendorScripts'], 'karma:all');
48+
runSequence(mergedTasks, 'karma:all');
4649
});
4750

4851
gulp.task('test:watch', function() {
49-
runSequence(['config', 'partials', 'vendorScripts'], 'karma:watch');
52+
runSequence(mergedTasks, 'karma:watch');
5053
});
5154
};
52-
53-

tasks/sass.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ var sass = require('gulp-sass'),
33
autoPrefixer = require('gulp-autoprefixer'),
44
gulpif = require('gulp-if'),
55
rev = require('gulp-rev'),
6-
revReplace = require('gulp-rev-replace');
6+
revReplace = require('gulp-rev-replace'),
7+
_ = require('underscore');
78

89

9-
module.exports = function(gulp, src, dest, revFlag, manifestPath, sourceMapsPath) {
10-
gulp.task('styles', ['fonts'], function (done) {
10+
module.exports = function(gulp, tasks, src, dest, revFlag, manifestPath, sourceMapsPath) {
11+
var mergedTasks = _.intersection(tasks, ['fonts']);
12+
gulp.task('styles', mergedTasks, function (done) {
1113
var optionsSass = {
1214
outputStyle: 'compressed'
1315
};
@@ -32,4 +34,3 @@ module.exports = function(gulp, src, dest, revFlag, manifestPath, sourceMapsPath
3234
done();
3335
});
3436
};
35-

tasks/vendorFonts.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
var bowerFiles = require('main-bower-files'),
44
gulpif = require('gulp-if'),
55
rev = require('gulp-rev'),
6-
debug = require('gulp-debug');
6+
debug = require('gulp-debug'),
7+
_ = require('underscore');
78

89
var fontsFilter = {
910
filter: /\.(otf|eot|svg|ttf|woff)/i
1011
};
1112

12-
module.exports = function(gulp, debugFlag, dest, revFlag) {
13-
gulp.task('vendorFonts', ['bower:install', 'bower:prune'], function() {
13+
module.exports = function(gulp, tasks, debugFlag, dest, revFlag) {
14+
var mergedTasks = _.intersection(tasks, ['bower:install', 'bower:prune']);
15+
gulp.task('vendorFonts', mergedTasks, function() {
1416
return gulp.src(bowerFiles(fontsFilter))
1517
.pipe(gulpif(debugFlag, debug()))
1618
.pipe(gulpif(revFlag, rev()))

tasks/vendorScripts.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ var bowerFiles = require('main-bower-files'),
77
newer = require('gulp-newer'),
88
concat = require('gulp-concat'),
99
rev = require('gulp-rev'),
10-
uglify = require('gulp-uglify');
10+
uglify = require('gulp-uglify'),
11+
_ = require('underscore');
1112

1213

1314
var isFirstRun = true;
@@ -16,8 +17,9 @@ var jsFilter = {
1617
filter: /\.js$/i
1718
};
1819

19-
module.exports = function(gulp, dest, sourceMapPath, debugFlag, revFlag) {
20-
gulp.task('vendorScripts', ['bower:install', 'bower:prune'], function() {
20+
module.exports = function(gulp, tasks, dest, sourceMapPath, debugFlag, revFlag) {
21+
var mergedTasks = _.intersection(tasks, ['bower:install', 'bower:prune']);
22+
gulp.task('vendorScripts', mergedTasks, function() {
2123
var result = gulp.src(bowerFiles(jsFilter))
2224
.pipe(gulpif(debugFlag, debug()))
2325
.pipe(sourceMaps.init())

tasks/vendorStyles.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ var bowerFiles = require('main-bower-files'),
77
newer = require('gulp-newer'),
88
concat = require('gulp-concat'),
99
rev = require('gulp-rev'),
10-
minifyCSS = require('gulp-minify-css');
10+
minifyCSS = require('gulp-minify-css'),
11+
_ = require('underscore');
1112

1213

1314
var isFirstRun = true;
@@ -16,8 +17,9 @@ var cssFilter = {
1617
filter: /\.css$/i
1718
};
1819

19-
module.exports = function(gulp, dest, sourceMapsPath, debugFlag, revFlag) {
20-
gulp.task('vendorStyles', ['bower:install', 'bower:prune'], function(done) {
20+
module.exports = function(gulp, tasks, dest, sourceMapsPath, debugFlag, revFlag) {
21+
var mergedTasks = _.intersection(tasks, ['bower:install', 'bower:prune']);
22+
gulp.task('vendorStyles', mergedTasks, function(done) {
2123
gulp.src(bowerFiles(cssFilter))
2224
.pipe(gulpif(debugFlag, debug()))
2325
.pipe(sourceMaps.init())

tasks/watch.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22

33
var liveReload = require('gulp-livereload');
44

5-
module.exports = function(gulp, config) {
5+
module.exports = function(gulp, tasks, config) {
66
gulp.task('watch', ['build'], function() {
77
liveReload.listen();
88
gulp.watch(config.app.index, ['justIndex']);
9-
gulp.watch(config.app.views, ['partials']);
10-
gulp.watch(config.app.statics, ['statics']);
11-
gulp.watch(config.app.images, ['images']);
9+
10+
if (tasks.indexOf('partials')) {
11+
gulp.watch(config.app.views, ['partials']);
12+
}
13+
14+
if (tasks.indexOf('partials')) {
15+
gulp.watch(config.app.statics, ['statics']);
16+
}
17+
18+
if (tasks.indexOf('partials')) {
19+
gulp.watch(config.app.images, ['images']);
20+
}
21+
1222
gulp.watch(config.app.scssAll, ['styles']);
1323
gulp.watch(config.app.js, ['scripts']);
1424
gulp.watch(config.bowerjson, ['vendorScripts', 'vendorStyles', 'vendorFonts']);

0 commit comments

Comments
 (0)