Skip to content

Instantly share code, notes, and snippets.

@thomastuts
Created April 1, 2015 18:10
Show Gist options
  • Select an option

  • Save thomastuts/f3b198d60625d73996c2 to your computer and use it in GitHub Desktop.

Select an option

Save thomastuts/f3b198d60625d73996c2 to your computer and use it in GitHub Desktop.

Revisions

  1. Thomas Tuts created this gist Apr 1, 2015.
    30 changes: 30 additions & 0 deletions bundle.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    // tasks/bundle.js

    'use strict';

    var gulp = require('gulp');
    var browserify = require('browserify');
    var watchify = require('watchify');
    var source = require('vinyl-source-stream');
    var buffer = require('vinyl-buffer');
    var concat = require('gulp-concat');
    var gutil = require('gulp-util');

    var bundler = watchify(browserify('./app/src/app.js', watchify.args));
    bundler.transform('reactify');
    bundler.transform('babelify');
    bundler.on('update', bundle); // on any dep update, runs the bundler

    function bundle() {
    return bundler.bundle()
    // log errors if they happen
    .on('error', gutil.log.bind(gutil, 'Browserify Error'))
    .pipe(source('bundle.js'))
    // optional, remove if you dont want sourcemaps
    .pipe(buffer())
    //
    .pipe(gulp.dest('./app/src'));
    }


    module.exports = bundle;
    11 changes: 11 additions & 0 deletions gulpfile.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,11 @@
    // gulpfile.js

    'use strict';

    var gulp = require('gulp');

    gulp.task('serve', ['bundle', 'watch'], require('./tasks/serve'));
    gulp.task('watch', require('./tasks/watch'));
    gulp.task('bundle', require('./tasks/bundle'));

    gulp.task('default', ['serve']);
    15 changes: 15 additions & 0 deletions serve.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    // tasks/serve.js

    'use strict';

    var browserSync = require('browser-sync');

    module.exports = function () {
    browserSync({
    files: './app/src/bundle.js',
    server: {
    baseDir: ['./app', './']
    },
    notify: false
    });
    };
    12 changes: 12 additions & 0 deletions watch.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    // tasks/watch.js

    'use strict';

    var gulp = require('gulp');

    module.exports = function () {
    return gulp.watch([
    'app/src/**/*.js',
    '!app/src/bundle.js'
    ], ['bundle']);
    };