Search code examples
javascriptgulpbrowserify

Is there a better way to write the gulp.js (with browserify) below?


Given a source js And I want to generate two copies of it

One of them is the concat browserify version And the other is a uglified browserfied version

I had managed to come out with the gulp.js below for the task:

var gulp = require('gulp');
var browserify = require('browserify');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var rename = require('gulp-rename');
var streamify = require('gulp-streamify')

gulp.task('js',function(){

    var outputDir = 'someoutputfolder';

    browserify('main.js')
        .bundle({debug:true})
        .pipe(source('build.js'))
        .pipe(gulp.dest(outputDir));

    browserify('main.js')
        .bundle({debug:true})
        .pipe(source('build.js'))
        .pipe(streamify(uglify()))
        .pipe(gulp.dest(outputDir));
});

I wonder whether there is a more efficient way to accomplish my objective.

Any help is appreciated.


Solution

  • Well at this point I suppose you're just looking for the DRY-est possible implementation, so perhaps:

    var gulp = require('gulp');
    var browserify = require('browserify');
    var uglify = require('gulp-uglify');
    var source = require('vinyl-source-stream');
    var rename = require('gulp-rename');
    var streamify = require('gulp-streamify')
    
    gulp.task('js',function(){
    
      var outputDir = 'someoutputfolder';
    
      var bundle = browserify('main.js')
            .bundle({debug:true});
    
      bundle.pipe(source('build.js'))
            .pipe(gulp.dest(outputDir));
    
      bundle.pipe(source('build-min.js'))
            .pipe(streamify(uglify()))
            .pipe(gulp.dest(outputDir));
    });
    

    I'm honestly not sure this buys you much, but I guess it's a little better.