β Zero-config ESM/TS package builder.
Powered by oxc, rolldown and rolldown-plugin-dts.
The obuild project aims to be the next-generation successor to the current unbuild.
- π± Fresh rewrite with cleanups and removal of legacy features.
- π Uses oxc and rolldown instead of rollup and mkdist.
- π Strict ESM-compliant imports with explicit extensions.
- π Types are built with isolated declaration constraints.
- πͺ¦ No support for CommonJS output.
Some differences are not easy to adopt. Developing as a standalone project allows for faster progress and dogfooding in real projects.
π See this issue for more explanation about the difference between obuild
, unbuild
, tsup
, and tsdown
.
CLI:
# bundle
npx obuild ./src/index.ts
# transform
npx obuild ./src/runtime/:./dist/runtime
You can use --dir
to set the working directory.
Programmatic:
import { build } from "obuild";
await build(".", ["./src/index.ts"]);
Note
Auto entries inference similar to unbuild coming soon (#4).
- π¦ obuild
- π³ rou3
- π₯ srvx
- ποΈ unenv
- π°οΈ omnichron
- [...add yours...]
Important
This is a proof-of-concept project.
Features are incomplete, and output behavior may change between versions.
Feedback and contributions are very welcome! If you'd like to make changes with more than a few lines of code, please open an issue first to discuss.
π Released under the MIT license.