- 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 withmicrobundle
and/or to not outgrow it.
$ npm install --save-dev bundt
# 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
Most configuration lives within your package.json
file. The following keys are evaluated:
-
"main" — the destination for your CommonJS file
Defaults todist/{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 alternateumd:name
if yourname
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 replacedist
with its name as the new directory. -
"terser" — custom Terser options for minification
Alternatively, you may use a.terserrc
file~!
MIT © Luke Edwards
Logo by iconicbestiary