Hohoro

Hohoro is an incremental JS/TS/TSX library build tool that helps you build your library with ease!

hohoro is Maori for "make haste" or "hurry up"

Installation

Install Hohoro via your favorite package manager:

bun install hohoro
bun install hohoro

Setup:

hohoro uses swc and TypeScript under the hood, leveraging your existing configuration for both tools.

If you haven't yet, you'll want to install both tools and setup local configuration for them.

Recommendations:

For swc I recommend using the official configuration guide to create a .swcrc file.

For TypeScript I recommend using tsconfig.guide (a minimal UI on top of Matt Pocock's TSConfig Cheat Sheet) to create a tsconfig.json file.

Once the above tools are configured however you'd like, you can set your build script to the hohoro binary:

{
"scripts": {
"build": "hohoro"
}
}
{
"scripts": {
"build": "hohoro"
}
}

Then run build to build your project!

Watch Mode

By default, hohoro does not automatically watch your project for changes and rebuild. Instead you can combine hohoro with node --watch to achieve this!

To get started, you'll need a local dev.mjs script:

// dev.mjs
import { runBuild } from "hohoro";

await runBuild({ rootDirectory: process.cwd(), logger: console });
// dev.mjs
import { runBuild } from "hohoro";

await runBuild({ rootDirectory: process.cwd(), logger: console });

Then add a dev script to your package.json:

{
"scripts": {
"dev": "node --watch-path=./src dev.mjs"
}
}
{
"scripts": {
"dev": "node --watch-path=./src dev.mjs"
}
}