Augment browserify
with the following features:
watchify2
to watch files, which is able to detect new entries.common-bundle
to pack modules by default, which make b.bundle()
output a stream manipulatable by gulp
plugins.Suppose we want to create one bundle for each js file in /path/to/src
, and an additional common bundle to hold modules shared among them.
const reduce = require('reduce-js')
const path = require('path')
const del = require('del')
const uglify = require('gulp-uglify')
Â
bundle(createBundler())
Â
function createBundler(watch) {
  var b = reduce.create(
   Â
    '*.js',
Â
   Â
    {
      basedir: path.join(__dirname, 'src'),
      cache: {},
      packageCache: {},
    },
Â
   Â
   Â
   Â
   Â
    {
      groups: '*.js',
      common: 'common.js',
    },
Â
   Â
    watch && { entryGlob: '*.js' }
  )
  return b
}
Â
function bundle(b) {
  var build = path.join(__dirname, 'build')
  del.sync(build)
  return b.bundle().pipe(uglify()).pipe(b.dest(build))
}
Â
Â
To watch file changes:
var b = createBundler(true)
b.on('update', function update() {
  bundle(b)
  return update
}())
Â
To work with gulp:
APIvar gulp = require('gulp')
gulp.task('build', function () {
  return bundle(createBundler())
})
Â
gulp.task('watch', function (cb) {
  var b = createBundler(true)
  b.on('update', function update() {
    bundle(b)
    return update
  }())
  b.on('close', cb)
})
Â
reduce.create(entries, browserifyOptions, bundleOptions, watchifyOptions)var reduce = require('reduce-js')
var b = reduce.create(entries, browserifyOptions, bundleOptions, watchifyOptions)
Â
Return a browserify
instance.
entries
: patterns to locate input files. Check [globby
] for more details.browserifyOptions
: options for browserify
.bundleOptions
: options for common-bundle
.watchifyOptions
: options for watchify2
. If truthy, file changes are watched.Return a [vinyl
] stream, which can be processed by gulp plugins.
b.dest(outFolder, options)b.bundle().pipe(require('gulp-uglify')()).pipe(b.dest('build'))
Â
The same with gulp.dest
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4