Gradle-inspired task runner for Node.js.
Why | Installation | Features | Playground | Configuration Reference
- Type-safe task definitions — full TypeScript inference and compile-time checks
- Parallel execution — DAG-based scheduling with worker threads
- Built-in caching — input fingerprinting and output snapshots for incremental builds
- Monorepo-native — first-class support for multi-package workspaces
- Built-in tasks — ExecTask, PnpmTask, CopyTask, DeleteTask ready to use
- Smart CLI — abbreviation matching, auto-correction, dry run, summary mode
- Zero legacy — ESM-only, Node.js 22+, no backwards-compatibility baggage
Install Nadle:
npm install -D nadleCreate a nadle.config.ts:
import { tasks } from "nadle";
tasks.register("hello", async () => {
console.log("Hello from Nadle!");
});
tasks.register("goodbye", async () => {
console.log("Goodbye!");
});
tasks.register("greet").config({
group: "Greeting",
description: "Run all greeting tasks",
dependsOn: ["hello", "goodbye"]
});Run it:
npx nadle greetThis repository uses Nadle as its own build system — see nadle.config.ts for a real-world example with caching, parallel execution, and monorepo task orchestration.
Thanks to:
- The Gradle team and community for inspiring Nadle's API and dependency model.
- The Vitest team for their excellent testing framework and for the reporter logic we reuse.
MIT License © 2025-Present Nam Hoang Le
