Skip to content
/ brrp Public

ESM bundle npm modules for browsers and nodejs

Notifications You must be signed in to change notification settings

mikeal/brrp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

brrp

Creates ESM bundles of npm packages for use in the browser or Node.js.

Usage

CLI

$ brrp -x lodash.merge > lodash-merge.bundle.js

This will do a fresh install of the npm module lodash.merge in temporary directory and then create a bundle of the module.

If you have the target module already installed in your local npm project you can avoid running any npm install locally by omitting the -x property.

$ brrp lodash.merge > lodash-merge.bundle.js

As a module.

You can import brrp into Node.js for use in your own tooling.

import { install, browserBundle } from 'brrp'

const { input } = await install('lodash.merge')
const stream = browserBundle({input})

for await (const chunk of stream) {
  process.stdout.write(chunk)
}

Inject Node.js polyfills

By default we don't bundle in any Node.js polyfills. You can include them by using the -p or --node-polyfills option.

$ brrp -x -p base-x

Or, if you're using brrp as a module.

import { install, browserBundle } from 'brrp'

const { input } = await install('lodash.merge')
const nodePolyfills = true
const stream = browserBundle({input, nodePolyfills})

for await (const chunk of stream) {
  process.stdout.write(chunk)
}

Minification

$ brrp -x -m bent

Or, if you're using brrp as a module.

import { install, browserBundle } from 'brrp'

const { input } = await install('bent')
const minify = true
const stream = browserBundle({input, minify})

for await (const chunk of stream) {
  process.stdout.write(chunk)
}

We use terser under the hood for optimal compression targetted at ES6+.

About

ESM bundle npm modules for browsers and nodejs

Resources

Stars

Watchers

Forks

Packages

No packages published