const gulp = require('gulp');
const browserify = require('browserify');
const watchify = require('watchify');
const buffer = require('vinyl-buffer');
const source = require('vinyl-source-stream');
const gutil = require('gulp-util');
const log = require('gulplog');
const uglify = require('gulp-uglify');
const sourcemaps = require('gulp-sourcemaps');
const reactify = require('reactify');
const jshint = require('gulp-jshint');
const babel = require('gulp-babel');
var b = function() {
return browserify({
cache: {},
packageCache: {},
entries: ['./src/js/app.js'],
debug: true,
transform: ['reactify']
});
};
var w = watchify(b());
w.on('log', gutil.log);
var bundle = function(pkg) {
return pkg.bundle()
.pipe(source('bundle.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
// Add transformation tasks to the pipeline here.
.pipe(jshint({
esversion: 6
}))
.pipe(jshint.reporter('default'))
.pipe(babel({
presets: ['env']
}))
//.pipe(uglify())
.on('error', log.error)
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./dist/js'));
};
gulp.task('watch', function() {
bundle(w);
w.on('update', bundle.bind(null, w));
});
gulp.task('build', bundle.bind(null, b()));
gulp.task('default', ['watch']);