var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var header = require('gulp-header');
var jshint = require('gulp-jshint');
var todo = require('gulp-todo');
var gulputil = require('gulp-util');
var moment = require('moment');
var pkg = require('./package.json');
var banner =
'/*!\n\n' +
'<%= pkg.name %> - <%= pkg.summary %>\nVersion <%= pkg.version %>+<%= build %>\n' +
'\u00A9 <%= year %> <%= pkg.author.name %> - <%= pkg.author.url %>\n\n' +
'Site: <%= pkg.homepage %>\n'+
'Issues: <%= pkg.bugs.url %>\n' +
'License: <%= pkg.license.url %>\n\n' +
'*/\n';
function generateBuild(){
var date = new Date;
return Math.floor((date - (new Date(date.getFullYear(),0,0)))/1000).toString(36)
}
var build = generateBuild();
var paths = {
scripts: ["src/ondomready.js", "src/polyfills.js", "src/augment.js", "src/holder.js"]
}
gulp.task('jshint', function () {
return gulp.src(paths.scripts[paths.scripts.length - 1])
.pipe(jshint())
.pipe(jshint.reporter('default'))
});
gulp.task('todo', function(){
return gulp.src(paths.scripts)
.pipe(todo())
.pipe(gulp.dest('./'))
});
gulp.task('scripts', ['jshint'], function () {
return gulp.src(paths.scripts)
.pipe(concat("holder.js"))
.pipe(uglify())
.pipe(header(banner, {
pkg: pkg,
year: moment().format("YYYY"),
build: build
}))
.pipe(gulp.dest("./"))
});
gulp.task('watch', function(){
gulp.watch(paths.scripts, ['default']);
});
gulp.task('default', ['todo', 'jshint', 'scripts'], function(){
build = generateBuild();
gulputil.log("Finished build "+build);
});
|