https://github.com/sunny-117/create-rolldown
⚡️ Scaffolding tool for Rolldown library projects - a fast JavaScript bundler written in Rust.
https://github.com/sunny-117/create-rolldown
bundler cli create-app rolldown scaffolding template
Last synced: 2 months ago
JSON representation
⚡️ Scaffolding tool for Rolldown library projects - a fast JavaScript bundler written in Rust.
- Host: GitHub
- URL: https://github.com/sunny-117/create-rolldown
- Owner: Sunny-117
- License: mit
- Created: 2026-01-16T06:20:19.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-17T06:03:56.000Z (5 months ago)
- Last Synced: 2026-01-21T02:46:55.513Z (5 months ago)
- Topics: bundler, cli, create-app, rolldown, scaffolding, template
- Language: TypeScript
- Homepage: https://rolldown.rs/
- Size: 363 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
create-rolldown 🔧
⚡️ Scaffolding tool for Rolldown library projects - a fast JavaScript bundler written in Rust, with TypeScript support and multiple framework templates
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![bundle][bundle-src]][bundle-href]
[![License][license-src]][license-href]
[](https://github.com/sunny-117/create-rolldown)
[](https://github.com/sunny-117/create-rolldown)
## Features
- 🚀 **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
## Installation
```bash
npm create rolldown@latest
# or
pnpm create rolldown
# or
yarn create rolldown
# or
bun create rolldown
```
## Quick Start
### Method 1: Interactive Mode (Recommended)
Simply run the command and follow the prompts:
```bash
npm create rolldown@latest
```
You'll be prompted to:
1. Enter a project name
2. Choose a framework (Vanilla, React, Vue, Solid, or Svelte)
3. Optionally install dependencies and start the playground immediately
### Method 2: Non-Interactive Mode
For automated workflows or CI/CD pipelines:
```bash
# 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
```
## Supported Templates
| 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 |
## Command Line Options
```
Usage: create-rolldown [project-name] [options]
Options:
-t, --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
```
## How It Works
1. **Parse CLI arguments** using `mri`
2. **Detect mode** (interactive vs non-interactive based on TTY and flags)
3. **Collect configuration** (project name, template, options)
4. **Validate inputs** (package name format, directory conflicts)
5. **Copy template files** to target directory
6. **Update files** (package.json name, metadata)
7. **Optionally install dependencies** and start playground
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
💛 [MIT](./LICENSE) License © [Sunny-117](https://github.com/Sunny-117)
## Related Projects
- [Rolldown](https://rolldown.rs) - Fast JavaScript bundler written in Rust
- [tsdown](https://tsdown.dev) - TypeScript bundler built on Rolldown
- [create-vite](https://github.com/vitejs/vite/tree/main/packages/create-vite) - Inspiration for this project
[npm-version-src]: https://img.shields.io/npm/v/create-rolldown?style=flat&colorA=080f12&colorB=1fa669
[npm-version-href]: https://npmjs.com/package/create-rolldown
[npm-downloads-src]: https://img.shields.io/npm/dm/create-rolldown?style=flat&colorA=080f12&colorB=1fa669
[npm-downloads-href]: https://npmjs.com/package/create-rolldown
[bundle-src]: https://img.shields.io/bundlephobia/minzip/create-rolldown?style=flat&colorA=080f12&colorB=1fa669&label=minzip
[bundle-href]: https://bundlephobia.com/result?p=create-rolldown
[license-src]: https://img.shields.io/github/license/Sunny-117/create-rolldown.svg?style=flat&colorA=080f12&colorB=1fa669
[license-href]: https://github.com/Sunny-117/create-rolldown/blob/main/LICENSE