https://github.com/bendrucker/bundleify
Bundle your JS with browserify with preconfigured transforms
https://github.com/bendrucker/bundleify
Last synced: over 1 year ago
JSON representation
Bundle your JS with browserify with preconfigured transforms
- Host: GitHub
- URL: https://github.com/bendrucker/bundleify
- Owner: bendrucker
- License: mit
- Created: 2016-05-04T19:36:28.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-08-19T23:35:32.000Z (almost 7 years ago)
- Last Synced: 2025-04-15T00:03:51.496Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 43.9 KB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# bundleify [](https://travis-ci.org/bendrucker/bundleify) [](https://greenkeeper.io/)
> Bundle your JS with browserify with preconfigured transforms
## Install
```
$ npm install --save bundleify
```
## Usage
```js
var bundleify = require('bundleify')
bundleify({
entry: 'app.js',
destination: 'build'
}, function (err) {
//=> wrote build to `./build`
})
```
bundleify applies the following settings and transforms:
* [es2020](https://github.com/yoshuawuyts/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](https://github.com/hughsk/uglifyify)
* [bundle-collapser](https://www.npmjs.com/package/bundle-collapser)
* extracts source map to an external file
* re-compresses with [uglify](https://github.com/mishoo/UglifyJS2) for more byte savings
### Transforms
Browserify transforms applied to the bundle are not [global](https://github.com/substack/node-browserify#btransformtr-opts) 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
## API
#### `bundleify(options, callback)` -> `undefined`
##### options
*Required*
Type: `object`
###### entry
*Required*
Type: `string`
The relative path to the entry file.
###### destination
*Required*
Type: `string`
The relative path to the destination folder.
###### basedir
Type: `string`
Default: `process.cwd()`
The base directory from which the entry and destination paths are resolved.
###### compress
Type: `boolean`
Default: `false`
Toggles minification/compression transforms (see *Usage*).
###### config
Type: `object`
Default: `{}`
Nested configuration to be transformed into environment variables that will be replaced in the bundle. Given the following config:
```js
{
foo: {
bar: 'baz'
}
}
```
You can write the following code:
```js
console.log(process.env.FOO_BAR)
//=> baz
```
Any environment variables that are not explicit defined in the configuration will be set to `undefined`.
###### filename
Type: `string`
Default: `bundle.js`
The destination filename.
##### callback
*Required*
Type: `function`
Arguments: `err`
A callback that will be called with a build error if applicable, otherwise `null`.
## License
MIT © [Ben Drucker](http://bendrucker.me)