captainslog
Version:
Universal log wrapper for browser development. Runs on stardates.
92 lines (72 loc) • 1.74 kB
JavaScript
/*jshint node:true,strict:true,undef:true,unused:true*/
;
/**
* Import tasks
**/
var gulp = require('gulp');
var util = require('gulp-util');
var browserify = require('gulp-browserify');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var bump = require('gulp-bump');
var jshint = require('gulp-jshint');
var fs = require('fs');
var del = require('del');
/**
* Utilities
**/
var getPackageJson = function() {
return JSON.parse(fs.readFileSync('./package.json', 'utf8'));
};
/**
* Settings
*/
var source = './src/captain.js';
var browserifySettings = {
standalone: 'Captain'
};
/**
* Tasks
*/
// Check JS code quality using JSHint.
gulp.task('js-lint', ['config'], function() {
return gulp.src(source)
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'));
});
// Versioning
gulp.task('bump', function() {
return gulp.src('./package.json')
.pipe(bump({
type: util.env.bump ? util.env.bump : 'patch'
}))
.pipe(gulp.dest('./'));
});
// Uglify
gulp.task('uglify', function() {
var pkg = getPackageJson();
return gulp.src(source)
.pipe(browserify(browserifySettings))
.pipe(uglify())
.pipe(rename(function(path) {
path.basename += '.' + pkg.version + '.min';
}))
.pipe(gulp.dest('./dist'));
});
// Copy
gulp.task('copy', function() {
var pkg = getPackageJson();
return gulp.src(source)
.pipe(browserify(browserifySettings))
.pipe(gulp.dest('./dist'))
.pipe(rename(function(path) {
path.basename += '.' + pkg.version;
}))
.pipe(gulp.dest('./dist'));
});
// Cleans the dist folder
gulp.task('clean', function(cb) {
return del(['./dist', './examples/*.js'], cb);
});
// Build is default task
gulp.task('default', ['copy', 'uglify']);