A zero-configuration bundler for tiny JavaScript modules, powered by Rollup.
Microbundle is a zero-configuration JavaScript bundler specifically designed for creating small, optimized libraries and modules. It uses Rollup under the hood and requires only a `package.json` file to generate multiple output formats (CommonJS, ES Modules, UMD, and modern bundles). It solves the problem of complex build configurations for library authors who want to publish efficient, cross-platform packages.
JavaScript library authors and developers who need to bundle small modules or packages for distribution via npm, especially those who want minimal configuration and optimized outputs.
Developers choose Microbundle because it eliminates build configuration entirely, produces tiny and optimized bundles, supports TypeScript out of the box, and generates multiple module formats automatically—saving time and reducing tooling complexity.
📦 Zero-configuration bundler for tiny modules.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works immediately with just a package.json file, eliminating the need for separate build config files like webpack.config.js or rollup.config.js.
Generates CommonJS, ES Modules, UMD, and modern bundles from a single entry, ensuring broad compatibility without manual setup.
Compiles TypeScript files directly with no extra configuration, though it requires setting module and target to ESNext in tsconfig.json for optimal results.
Produces a special modern bundle that preserves async/await and other ES2017+ features for compatible browsers, resulting in smaller and faster code.
Advanced Rollup configurations or custom plugins are difficult to integrate, as Microbundle abstracts away fine-grained control for simplicity.
The heuristic for deciding which dependencies to bundle based on package.json can sometimes misjudge, leading to unexpected inclusions or exclusions that require manual overrides.
Planned features like multiple separate inputs with distinct outputs are not yet implemented, restricting use for complex library structures.