/bundt

A simple bundler for your delicious modules

Primary LanguageJavaScriptMIT LicenseMIT

bundt
CI version downloads
A simple bundler for your delcious modules~!

Features

  • Release CommonJS, ES Module, and UMD targets
  • Easily configured through your package.json
  • Optionally control Terser settings

Gotchas

Your code is prepared for release targets as written!

  • Does not transpile your code
    AKA – no Babel or Buble
  • Does not inline dependencies
    AKA – no Rollup or Webpack

If you need either of these, using microbundle comes highly recommended!

Seriously, I write wonky ES5 code in a single file...
bundt only puts a name to the builder script I copy & paste between libraries.
You are 99.9999% more likely to do better with microbundle and/or to not outgrow it.

Install

$ npm install --save-dev bundt

Usage

# display help text
$ bundt --help

# build with "lib/index.js" as your entry file
$ bundt lib/index.js

# build with "src/index.js" (default)
$ bundt

Configuration

Most configuration lives within your package.json file. The following keys are evaluated:

  • "main" — the destination for your CommonJS file
    Defaults to dist/{pkg.name}.js – always built!

  • "module" — the destination for your ES Module file
    A ESM file will not be built if unspecified!

  • "unpkg" or "umd:main" — the destination for your UMD file
    A UMD file will not be built if unspecified!

  • "umd:name" or "name" — the globally exposed name for your UMD factory
    You should use an alternate umd:name if your name is not alphanumeric!

  • "modes" — a map of "mode" names and their entry files
    Your "default" mode will use the destinations defined above.
    All other modes replace dist with its name as the new directory.

  • "terser" — custom Terser options for minification
    Alternatively, you may use a .terserrc file~!

License

MIT © Luke Edwards


Logo by iconicbestiary