Bundle your JS with browserify with preconfigured transforms
$ npm install --save bundleify
var bundleify = require('bundleify')
bundleify({
entry: 'app.js',
destination: 'build'
}, function (err) {
//=> wrote build to `./build`
})
bundleify applies the following settings and transforms:
- es2020, a transpiler for a tiny subset of ES6
- source maps
- exposes your entry as
require('app')
- flattens configuration and uses it to replace environment variables
- applies minification transforms when in compression mode:
- uglifyify
- bundle-collapser
- extracts source map to an external file
- re-compresses with uglify for more byte savings
Browserify transforms applied to the bundle are not global by default, but uglifyify and es2020 are explicitly run globally. That means the following features are limited to your code and do not run on your dependencies:
- Environment variable replacement
Required
Type: object
Required
Type: string
The relative path to the entry file.
Required
Type: string
The relative path to the destination folder.
Type: string
Default: process.cwd()
The base directory from which the entry and destination paths are resolved.
Type: boolean
Default: false
Toggles minification/compression transforms (see Usage).
Type: object
Default: {}
Nested configuration to be transformed into environment variables that will be replaced in the bundle. Given the following config:
{
foo: {
bar: 'baz'
}
}
You can write the following code:
console.log(process.env.FOO_BAR)
//=> baz
Any environment variables that are not explicit defined in the configuration will be set to undefined
.
Type: string
Default: bundle.js
The destination filename.
Required
Type: function
Arguments: err
A callback that will be called with a build error if applicable, otherwise null
.
MIT © Ben Drucker