
This removes `gulp-imagemin` and the image processing gulp task, as well as `debowerify`, significantly reducing required `npm install` time for a clean install. Change-Id: I48e035c96cd616715da3b5c75b66b8d8a7616263
75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
var config = require('../config');
|
|
var gulp = require('gulp');
|
|
var gulpif = require('gulp-if');
|
|
var gutil = require('gulp-util');
|
|
var source = require('vinyl-source-stream');
|
|
var sourcemaps = require('gulp-sourcemaps');
|
|
var buffer = require('vinyl-buffer');
|
|
var streamify = require('gulp-streamify');
|
|
var watchify = require('watchify');
|
|
var browserify = require('browserify');
|
|
var babelify = require('babelify');
|
|
var uglify = require('gulp-uglify');
|
|
var handleErrors = require('../util/handleErrors');
|
|
var browserSync = require('browser-sync');
|
|
var ngAnnotate = require('browserify-ngannotate');
|
|
|
|
// Based on: http://blog.avisi.nl/2014/04/25/how-to-keep-a-fast-build-with-browserify-and-reactjs/
|
|
function buildScript(file) {
|
|
|
|
var bundler = browserify({
|
|
entries: config.browserify.entries,
|
|
debug: true,
|
|
cache: {},
|
|
packageCache: {},
|
|
fullPaths: true
|
|
}, watchify.args);
|
|
|
|
if ( !global.isProd ) {
|
|
bundler = watchify(bundler);
|
|
bundler.on('update', function() {
|
|
rebundle();
|
|
});
|
|
}
|
|
|
|
var transforms = [
|
|
babelify,
|
|
ngAnnotate,
|
|
'brfs',
|
|
'bulkify'
|
|
];
|
|
|
|
transforms.forEach(function(transform) {
|
|
bundler.transform(transform);
|
|
});
|
|
|
|
function rebundle() {
|
|
var stream = bundler.bundle();
|
|
var createSourcemap = global.isProd && config.browserify.sourcemap;
|
|
|
|
gutil.log('Rebundle...');
|
|
|
|
return stream.on('error', handleErrors)
|
|
.pipe(source(file))
|
|
.pipe(gulpif(createSourcemap, buffer()))
|
|
.pipe(gulpif(createSourcemap, sourcemaps.init()))
|
|
.pipe(gulpif(global.isProd, streamify(uglify({
|
|
compress: { drop_console: true }
|
|
}))))
|
|
.pipe(gulpif(createSourcemap, sourcemaps.write('./')))
|
|
.pipe(gulp.dest(config.scripts.dest))
|
|
.pipe(browserSync.reload({ stream: true, once: true }));
|
|
}
|
|
|
|
return rebundle();
|
|
|
|
}
|
|
|
|
gulp.task('browserify', function() {
|
|
|
|
return buildScript('main.js');
|
|
|
|
});
|