⚡️ Scaffolding tool for Rolldown library projects - a fast JavaScript bundler written in Rust, with TypeScript support and multiple framework templates
- 🚀 Fast Setup - Create a new Rolldown project in seconds
- 🎨 TypeScript First - All templates use TypeScript by default
- 📦 Library Development Focus - Templates designed for building and publishing JavaScript/TypeScript libraries, component libraries, and utility packages
- 🎮 Playground Included - Framework templates include a Vite-powered playground for development and testing
- 🔧 Interactive & Non-Interactive Modes - Flexible usage for both manual and automated workflows
- 📦 Smart Package Manager Detection - Automatically detects and uses your preferred package manager (npm, pnpm, yarn, bun)
- ⚡ Immediate Start - Optional flag to install dependencies and start playground immediately
npm create rolldown@latest
# or
pnpm create rolldown
# or
yarn create rolldown
# or
bun create rolldownSimply run the command and follow the prompts:
npm create rolldown@latestYou'll be prompted to:
- Enter a project name
- Choose a framework (Vanilla, React, Vue, Solid, or Svelte)
- Optionally install dependencies and start the playground immediately
For automated workflows or CI/CD pipelines:
# Create a project with all options specified
npm create rolldown@latest my-lib -- --template react --no-interactive
# With immediate install and start
npm create rolldown@latest my-lib -- --template vue --immediate --no-interactive
# Overwrite existing directory
npm create rolldown@latest my-lib -- --template solid --overwrite --no-interactive| Template | Description | Use Cases | Playground |
|---|---|---|---|
vanilla |
Vanilla TypeScript library | Utility libraries, tools, helpers | ❌ |
react |
React library with TypeScript | React components, hooks, utilities | ✅ Vite |
vue |
Vue 3 library with TypeScript | Vue components, composables | ✅ Vite |
solid |
SolidJS library with TypeScript | Solid components, primitives | ✅ Vite |
svelte |
Svelte 5 library with TypeScript | Svelte components, actions | ✅ Vite |
Usage: create-rolldown [project-name] [options]
Options:
-t, --template <template> Specify a template (vanilla, react, vue, solid, svelte)
--overwrite Overwrite existing files in target directory
-i, --immediate Install dependencies and start playground immediately
--interactive Force interactive mode (default in TTY)
--no-interactive Force non-interactive mode (default in non-TTY)
-h, --help Display this help message
- Parse CLI arguments using
mri - Detect mode (interactive vs non-interactive based on TTY and flags)
- Collect configuration (project name, template, options)
- Validate inputs (package name format, directory conflicts)
- Copy template files to target directory
- Update files (package.json name, metadata)
- Optionally install dependencies and start playground
Contributions are welcome! Please feel free to submit a Pull Request.
- Rolldown - Fast JavaScript bundler written in Rust
- tsdown - TypeScript bundler built on Rolldown
- create-vite - Inspiration for this project