microbundle-2
v0.1.0
Published
What if microbundle could figure out how to bundle your library based on the `"exports"` field you already have to define in your package.json?
Downloads
7
Readme
Microbundle 2
What if microbundle could figure out how to bundle your library based on the "exports"
field you already have to define in your package.json?
And what if it was also absurdly fast, and one 500kb file with a single native dependency?
This is a reimplementation of Microbundle built on ESBuild.
Simple Example
You write a package.json that looks like this:
{
"name": "simple",
"type": "module",
"exports": {
"import": "./dist/lib.js",
"default": "./dist/lib.cjs"
}
}
Multiple entries
Just define your package exports the way you already have to for Node/Vite/etc:
{
"name": "multi-entry",
"type": "module",
"exports": {
".": {
"types": "./dist/lib.d.ts",
"import": "./dist/lib.js",
"default": "./dist/lib.cjs"
},
"./a": {
"types": "./dist/a.d.ts",
"import": "./dist/a.js",
"default": "./dist/a.cjs"
},
"./b": {
"types": "./dist/b.d.ts",
"import": "./dist/b.js",
"default": "./dist/b.cjs"
}
}
}
This example has a dynamic import, which you can see produced a ./c
chunk. Both the ESM and CJS versions work the same way!
Wildcards/patterns
Wildcard/pattern exports are also supported:
{
"name": "patterns",
"type": "module",
"exports": {
".": {
"types": "./build/index.d.ts",
"import": "./build/index.js",
"default": "./build/index.cjs"
},
"./lib/*": {
"types": "./build/lib/*.d.ts",
"import": "./build/lib/*.js",
"default": "./build/lib/*.cjs"
},
"./components/*": {
"source": "./lib/components/*.tsx",
"types": "./build/components/*.d.ts",
"import": "./build/components/*.js",
"default": "./build/components/*.cjs"
}
}
}