diff --git a/Gulpfile.js b/Gulpfile.js index 3d1b502..1e93c1b 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,12 +1,17 @@ -var gulp = require('gulp'); -var jshint = require('gulp-jshint'); -var jscs = require('gulp-jscs'); -var jasmine = require('gulp-jasmine'); -var istanbul = require('gulp-istanbul'); +var gulp = require('gulp'); +var jshint = require('gulp-jshint'); +var jscs = require('gulp-jscs'); +var jasmine = require('gulp-jasmine'); +var istanbul = require('gulp-istanbul'); + +var paths = { + 'spec' : 'spec/**/*.js', + 'lib' : 'lib/**/*.js' +} // Proofread the code gulp.task('lint', function() { - return gulp.src(['lib/**/*.js']) + return gulp.src([paths.lib, paths.spec]) .pipe(jshint()) .pipe(jshint.reporter('default')) .pipe(jshint.reporter('fail')); @@ -14,34 +19,39 @@ gulp.task('lint', function() { // Run the unit tests without any coverage calculations gulp.task('test', function() { - return gulp.src(['spec/**/*.js']) + return gulp.src([paths.spec]) .pipe(jasmine()); }); // Task that calculates the unit test coverage for the module gulp.task('coverage', function() { - return gulp.src('lib/**/*.js') - .pipe(istanbul()) - .pipe(istanbul.hookRequire()) - .on('finish', function() { - gulp.src(['spec/**/*.js']) - .pipe(jasmine()) - .pipe(istanbul.writeReports({ - dir: 'build/coverage', - reportOpts: {dir: 'build/coverage'} - })); - }); + return gulp.src(paths.lib) + .pipe(istanbul()) + .pipe(istanbul.hookRequire()) + .on('finish', function() { + gulp.src([paths.spec]) + .pipe(jasmine()) + .pipe(istanbul.writeReports({ + dir: 'build/coverage', + reportOpts: {dir: 'build/coverage'} + })); + }); }); gulp.task('style', function() { - return gulp.src('lib/**/*.js') + return gulp.src(paths.lib) .pipe(jscs()); }); gulp.task('default', ['lint', 'style', 'test']); -// On change to JavaScript files, run the default task -gulp.task('dev', ['default'], function() { - gulp.watch(['spec/**/*.js', 'lib/**/*.js'], ['default']); +// alias watch === dev +gulp.task('watch', ['dev']); + +// On change to JavaScript files, run lint & test tasks +// Do NOT run default: the style task breaks dev +gulp.task('dev', ['lint', 'test'], function() { + gulp.watch([paths.spec, paths.lib], ['lint', 'test']); }); + gulp.task('ci', ['default']);