/microbundle

📦 Zero-configuration bundler for tiny modules.

Primary LanguageJavaScript

microbundle

Microbundle npm travis

The zero-configuration bundler for tiny modules, powered by Rollup.


✨ Features:

  • 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

🔧 Installation

npm i -D microbundle

... then add the scripts to your package.json:

{
  "scripts": {
    "build": "microbundle",
    "dev": "microbundle watch"
  }
}

📦 Usage

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.

microbundle / microbundle build

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.

microbundle watch

Just like microbundle build, but watches your source files and rebuilds on any change.

All CLI Options

  Usage
    $ microbundle <command> [options]

  Available Commands
    build    Build once and exit
    watch    Rebuilds on any change

  For more info, run any command with the `--help` flag
    $ microbundle build --help
    $ microbundle watch --help

  Options
    -v, --version    Displays current version
    -i, --entry      Entry module(s)
    -o, --output     Directory to place build files into
    -f, --format     Only build specified formats  (default es,cjs,umd)
    --target         Specify your target environment  (default node)
    --external       Specify external dependencies, or 'all'
    --compress       Compress output using UglifyJS  (default true)
    --strict         Enforce undefined global context and add "use strict"
    --name           Specify name exposed in UMD builds
    --cwd            Use an alternative working directory  (default .)
    -h, --help       Displays this message

🛣 Roadmap

Here's what's coming up for Microbundle:

🥂 License

MIT