var gulp = require('gulp'),
|
runSequence = require('run-sequence'),
|
newVer;
|
|
gulp.task('karma', function(done) {
|
var karma = require('karma').server;
|
karma.start({
|
configFile: __dirname + '/karma.conf.js',
|
singleRun: true
|
}, done);
|
});
|
|
gulp.task('clean', function() {
|
var clean = require('gulp-clean');
|
|
return gulp.src('dist')
|
.pipe(clean());
|
});
|
|
gulp.task('build-minify', ['build-files-require'], function() {
|
var rename = require('gulp-rename'),
|
uglify = require('gulp-uglify'),
|
header = require('gulp-header'),
|
pkg = require('./package.json'),
|
banner = ['/**',
|
' * <%= pkg.name %> - <%= pkg.description %>',
|
' * @version v' + (newVer ? newVer : '<%= pkg.version %>'),
|
' * @link <%= pkg.homepage %>',
|
' * @license <%= pkg.license %>',
|
' * @author <%= pkg.author %>',
|
' */',
|
''].join('\n');
|
|
return gulp.src([
|
'dist/ocLazyLoad.js',
|
'dist/ocLazyLoad.require.js'
|
])
|
.pipe(uglify())
|
.pipe(header(banner, {pkg: pkg}))
|
.pipe(rename({suffix: '.min'}))
|
.pipe(gulp.dest('dist'));
|
|
});
|
|
gulp.task('build-files-require', ['build-files'], function() {
|
var rename = require('gulp-rename'),
|
uglify = require('gulp-uglify'),
|
header = require('gulp-header'),
|
babel = require('gulp-babel'),
|
ngAnnotate = require('gulp-ng-annotate'),
|
pkg = require('./package.json'),
|
concat = require('gulp-concat'),
|
banner = ['/**',
|
' * <%= pkg.name %> - <%= pkg.description %>',
|
' * @version v' + (newVer ? newVer : '<%= pkg.version %>'),
|
' * @link <%= pkg.homepage %>',
|
' * @license <%= pkg.license %>',
|
' * @author <%= pkg.author %>',
|
' */',
|
''].join('\n');
|
|
return gulp.src([
|
'src/ocLazyLoad.core.js',
|
'src/ocLazyLoad.directive.js',
|
'src/ocLazyLoad.loaders.common.js',
|
'src/ocLazyLoad.loaders.core.js',
|
'src/ocLazyLoad.loaders.cssLoader.js',
|
'src/ocLazyLoad.loaders.requireJSLoader.js',
|
'src/ocLazyLoad.loaders.templatesLoader.js',
|
'src/ocLazyLoad.polyfill.ie8.js'
|
])
|
.pipe(babel({ blacklist: ["strict"] }))
|
.pipe(ngAnnotate())
|
.pipe(gulp.dest('dist/modules'))
|
.pipe(concat('ocLazyLoad.require.js'))
|
.pipe(header(banner, {pkg: pkg}))
|
.pipe(gulp.dest('dist'));
|
});
|
|
gulp.task('build-files', ['clean'], function() {
|
var rename = require('gulp-rename'),
|
uglify = require('gulp-uglify'),
|
header = require('gulp-header'),
|
babel = require('gulp-babel'),
|
ngAnnotate = require('gulp-ng-annotate'),
|
pkg = require('./package.json'),
|
concat = require('gulp-concat'),
|
banner = ['/**',
|
' * <%= pkg.name %> - <%= pkg.description %>',
|
' * @version v' + (newVer ? newVer : '<%= pkg.version %>'),
|
' * @link <%= pkg.homepage %>',
|
' * @license <%= pkg.license %>',
|
' * @author <%= pkg.author %>',
|
' */',
|
''].join('\n');
|
|
return gulp.src([
|
'src/ocLazyLoad.core.js',
|
'src/ocLazyLoad.directive.js',
|
'src/ocLazyLoad.loaders.common.js',
|
'src/ocLazyLoad.loaders.core.js',
|
'src/ocLazyLoad.loaders.cssLoader.js',
|
'src/ocLazyLoad.loaders.jsLoader.js',
|
'src/ocLazyLoad.loaders.templatesLoader.js',
|
'src/ocLazyLoad.polyfill.ie8.js'
|
])
|
.pipe(babel({ blacklist: ["strict"] }))
|
.pipe(ngAnnotate())
|
.pipe(gulp.dest('dist/modules'))
|
.pipe(concat('ocLazyLoad.js'))
|
.pipe(header(banner, {pkg: pkg}))
|
.pipe(gulp.dest('dist'));
|
});
|
|
gulp.task('build', function(done) {
|
runSequence('karma', 'build-files', done);
|
});
|
|
gulp.task('promptBump', function() {
|
var prompt = require('gulp-prompt'),
|
semver = require('semver'),
|
pkg = require('./package.json');
|
|
return gulp.src('')
|
.pipe(prompt.prompt({
|
type: 'list',
|
name: 'bump',
|
message: 'What type of version bump would you like to do ? (current version is ' + pkg.version + ')',
|
choices: [
|
'patch (' + pkg.version + ' --> ' + semver.inc(pkg.version, 'patch') + ')',
|
'minor (' + pkg.version + ' --> ' + semver.inc(pkg.version, 'minor') + ')',
|
'major (' + pkg.version + ' --> ' + semver.inc(pkg.version, 'major') + ')',
|
'none (exit)'
|
]
|
}, function(res) {
|
if(res.bump.match(/^patch/)) {
|
newVer = semver.inc(pkg.version, 'patch');
|
} else if(res.bump.match(/^minor/)) {
|
newVer = semver.inc(pkg.version, 'minor');
|
} else if(res.bump.match(/^major/)) {
|
newVer = semver.inc(pkg.version, 'major');
|
}
|
}));
|
});
|
|
|
gulp.task('changelog', function() {
|
var streamqueue = require('streamqueue'),
|
stream = streamqueue({objectMode: true}),
|
exec = require('gulp-exec'),
|
concat = require('gulp-concat'),
|
clean = require('gulp-clean');
|
|
stream.queue(gulp.src('').pipe(exec('node ./changelog.js ' + newVer, {pipeStdout: true})));
|
stream.queue(gulp.src('CHANGELOG.md').pipe(clean()));
|
|
return stream.done()
|
.pipe(concat('CHANGELOG.md'))
|
.pipe(gulp.dest('./'));
|
});
|
|
gulp.task('updatePackage', function() {
|
var jeditor = require("gulp-json-editor");
|
|
return gulp.src('package.json')
|
.pipe(jeditor({
|
'version': newVer
|
}))
|
.pipe(gulp.dest("./"))
|
});
|
|
gulp.task('updateBower', function() {
|
var jeditor = require("gulp-json-editor");
|
|
return gulp.src('bower.json')
|
.pipe(jeditor({
|
'version': newVer
|
}))
|
.pipe(gulp.dest("./"));
|
});
|
|
gulp.task('release', ['karma'], function(done) {
|
runSequence('promptBump', 'updatePackage', 'updateBower', 'changelog', 'build-minify', done);
|
});
|