123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- var gulp = require('gulp');
- var gutil = require('gulp-util');
- var source = require('vinyl-source-stream');
- var babelify = require('babelify');
- var watchify = require('watchify');
- var exorcist = require('exorcist');
- var browserify = require('browserify');
- var browserSync = require('browser-sync').create();
- // Watchify args contains necessary cache options to achieve fast incremental bundles.
- // See watchify readme for details. Adding debug true for source-map generation.
- watchify.args.debug = true;
- // Input file.
- var bundler = watchify(browserify('./app/js/app.js', watchify.args));
- // Babel transform
- bundler.transform(babelify.configure({
- sourceMapRelative: 'app/js'
- }));
- // On updates recompile
- bundler.on('update', bundle);
- function bundle() {
- gutil.log('Compiling JS...');
- return bundler.bundle()
- .on('error', function (err) {
- gutil.log(err.message);
- browserSync.notify("Browserify Error!");
- this.emit("end");
- })
- .pipe(exorcist('app/js/dist/bundle.js.map'))
- .pipe(source('bundle.js'))
- .pipe(gulp.dest('./app/js/dist'))
- .pipe(browserSync.stream({once: true}));
- }
- /**
- * Gulp task alias
- */
- gulp.task('bundle', function () {
- return bundle();
- });
- /**
- * First bundle, then serve from the ./app directory
- */
- gulp.task('default', ['bundle'], function () {
- browserSync.init({
- server: "./app"
- });
- });
|