angular-state-view
Version:
Provides nested view management with template support.
54 lines (45 loc) • 1.33 kB
JavaScript
;
/**
* Dependencies
*/
var gulp = require('gulp');
var gulpif = require('gulp-if');
var source = require('vinyl-source-stream');
var sourcemaps = require('gulp-sourcemaps');
var buffer = require('vinyl-buffer');
var streamify = require('gulp-streamify');
var browserify = require('browserify');
var uglify = require('gulp-uglify');
var ngAnnotate = require('browserify-ngannotate');
function _build(file, entries, isMin) {
var bundler = browserify({
entries: entries,
debug: true,
cache: {},
packageCache: {}
});
bundler.transform(ngAnnotate);
function _rebundle() {
var stream = bundler.bundle();
return stream.on('error', function(err) {
console.error(err.stack || err);
this.emit('end');
})
.pipe(source(file))
.pipe(gulpif(isMin, buffer()))
.pipe(gulpif(isMin, sourcemaps.init()))
.pipe(gulpif(isMin, streamify(uglify({
compress: { drop_console: false }
}))))
.pipe(gulpif(isMin, sourcemaps.write('./')))
.pipe(gulp.dest('dist'));
}
return _rebundle();
}
gulp.task('build', ['build:normal', 'build:min']);
gulp.task('build:min', function() {
return _build('state-view.min.js', './src/index.js', true);
});
gulp.task('build:normal', function() {
return _build('state-view.js', './src/index.js');
});