Sha256: 1f28bcad15fba6c941355fbfd67c59afd68eeb4b023c173e45b11885ee57ca42

Contents?: true

Size: 1.46 KB

Versions: 8

Compression:

Stored size: 1.46 KB

Contents

_             = require 'lodash'
browserify    = require 'browserify'
browserSync   = require 'browser-sync'
bundleLogger  = require '../util/bundleLogger'
config        = require('../config').browserify
gulp          = require 'gulp'
handleErrors  = require '../util/handleErrors'
source        = require 'vinyl-source-stream'
watchify      = require 'watchify'

browserifyTask = (callback, devMode) ->
  bundleQueue = config.bundleConfigs.length

  browserifyThis = (bundleConfig) ->
    if devMode
      _.extend bundleConfig, watchify.args, debug: true
      bundleConfig = _.omit(bundleConfig, [ 'external', 'require' ])
    b = browserify(bundleConfig)

    bundle = ->
      bundleLogger.start bundleConfig.outputName

      b.bundle().on('error', handleErrors)
        .pipe source(bundleConfig.outputName)
        .pipe gulp.dest(bundleConfig.dest).on('end', reportFinished)
        .pipe browserSync.reload(stream: true)

    if devMode
      b = watchify(b)
      b.on 'update', bundle
      bundleLogger.watch bundleConfig.outputName
    else
      if bundleConfig.require
        b.require bundleConfig.require
      if bundleConfig.external
        b.external bundleConfig.external

    reportFinished = ->
      bundleLogger.end bundleConfig.outputName
      if bundleQueue
        bundleQueue--
        if bundleQueue == 0
          callback()

    bundle()

  config.bundleConfigs.forEach browserifyThis

gulp.task 'browserify', browserifyTask
module.exports = browserifyTask

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
blueberry_rails-0.4.1 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.4.0 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.10 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.9 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.8 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.7 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.6 templates/gulp/tasks/browserify.coffee
blueberry_rails-0.3.5 templates/gulp/tasks/browserify.coffee