The zero-configuration bundler for tiny modules, powered by Rollup.
- One dependency to bundle your library using only a
package.json
- Support for ESnext & async/await (via Bublé & Nodent)
- Produces tiny, optimized code for all inputs
- Supports multiple entry modules (
cli.js
+index.js
, etc) - Creates multiple output formats for each entry (CJS, UMD & ESM)
- Built-in Uglify compression & gzipped bundle size tracking
npm i -D microbundle
... then add the scripts to your package.json
:
{
"scripts": {
"build": "microbundle",
"dev": "microbundle watch"
}
}
Microbundle includes two commands - build
(the default) and watch
. Neither require any options, but you can tailor things to suit your needs a bit if you like.
By default, microbundle will infer the location of your source entry file
(the root module in your program) from the source
field in your package.json
. It will infer the output directory and filename(s) from the main
field. For UMD builds, microbundle will use a snake case version of the name
field in your package.json
for the export name; you can also specify a name via an amdName
field or the name
CLI option.
Just like microbundle build
, but watches your source files and rebuilds on any change.
microbundle [entries..]
Build once and exit
Commands:
cli.js build [entries..] Build once and exit [default]
cli.js watch [entries..] Rebuilds on any change
Options:
--version Show version number [boolean]
--entry, -i Entry module(s)
[string] [default: <package.module>]
--output, -o Directory to place build files into
[string] [default: <dirname(package.main), build/>]
--cwd Use an alternative working directory
[string] [default: .]
--format Only build specified formats
[string] [default: es,cjs,umd]
--target Specify your target environment
[string] [default: node]
--compress Compress output using UglifyJS
[boolean] [default: true]
--strict Enforce undefined global context and add "use
strict" [default: false]
--name Specify name exposed in UMD builds [string]
Here's what's coming up for Microbundle: