generator-bingo-dig-h5
Version:
Bingo-dig-h5 generator by BINGO.DIG
65 lines (54 loc) • 1.7 kB
JavaScript
var browserify = require('browserify');
var watchify = require('watchify');
var gulp = require('gulp');
var source = require('vinyl-source-stream');
var handleErrors = require('../util/handleErrors');
var bundleLogger = require('../util/bundleLogger');
var notify = require('gulp-notify');
var rename = require('gulp-rename');
var config = {
debug: true,
extensions: [ '.jsx' ],
bundleConfigs: [
{
entries: './src/app.jsx',
dest: './build/js/',
outputName: 'app.js'
}]
};
gulp.task('browserify', function(callback) {
var bundleQueue = config.bundleConfigs.length;
var browserifyThis = function(bundleConfig) {
var bundler = browserify({
cache: {}, packageCache: {}, fullPaths: false,
entries: bundleConfig.entries,
extensions: config.extensions,
debug: config.debug
});
var bundle = function() {
bundleLogger.start(bundleConfig.outputName);
return bundler
.bundle()
.on('error', handleErrors)
.pipe(source(bundleConfig.outputName))
.pipe(gulp.dest(bundleConfig.dest))
.on('end', reportFinished)
//.pipe(notify({ message: '编译合并JSX文件完成!!' }));
};
if(global.isWatching) {
bundler = watchify(bundler);
bundler.on('update', bundle);
}
var reportFinished = function() {
bundleLogger.end(bundleConfig.outputName);
if(bundleQueue) {
bundleQueue--;
if(bundleQueue === 0) {
callback();
}
}
};
return bundle();
};
config.bundleConfigs.forEach(browserifyThis);
});