closeheat-builder
Version:
A builder for closeheat
50 lines (42 loc) • 1.25 kB
text/coffeescript
fs = require 'fs'
Promise = require 'bluebird'
path = require 'path'
gulpFilter = require('gulp-filter')
through = require('through2')
browserifyInc = require('browserify-incremental')
source = require('vinyl-source-stream')
buffer = require('vinyl-buffer')
sourcemaps = require('gulp-sourcemaps')
gulp = require 'gulp'
module.exports =
class Bundler
constructor: (, ) ->
bundle: ->
new Promise (resolve, reject) =>
gulp
.src(path.join(, '**/*.js'))
.pipe(())
.pipe((resolve, reject).on('error', reject))
minFilter: ->
gulpFilter (file) ->
!/.min./.test(file.path)
exec: (resolve, reject) ->
through.obj((file, enc, cb) =>
if file.isNull()
cb(null, file)
return
bundle = browserifyInc(
entries: [file.path]
debug: true
standalone: 'CloseheatStandaloneModule'
).bundle().on('error', reject)
relative = path.relative(, file.path)
bundle
.pipe(source(relative))
.pipe(buffer())
.pipe(sourcemaps.init(loadMaps: true))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest())
.on('error', reject)
.on('end', cb)
, resolve)