> rolldown

Bundle JavaScript with Rolldown — Rust-based Rollup replacement, future Vite bundler. Use when someone asks to "Rolldown", "Rust Rollup", "fast Rollup alternative", "future Vite bundler", "Rolldown bundler", or "OXC bundler". Covers Rollup-compatible config, Vite integration roadmap, performance comparison, and migration from Rollup.

fetch
$curl "https://skillshub.wtf/TerminalSkills/skills/rolldown?format=md"
SKILL.mdrolldown

Rolldown

Overview

Rolldown is a Rust-based JavaScript bundler designed to replace Rollup — and eventually become Vite's production bundler. Built on OXC (the Rust toolchain behind oxlint), it aims for full Rollup API compatibility with 10-100x better performance. Currently in active development; when stable, Vite will use Rolldown instead of Rollup for production builds, unifying dev and prod bundling.

When to Use

  • Rollup builds are slow on large projects
  • Want to prepare for Vite's future bundler
  • Building libraries where Rollup-compatible output matters
  • Need faster bundling than Rollup without switching to webpack/esbuild
  • Following the OXC ecosystem (oxlint → Rolldown → OXC resolver)

Instructions

Setup

npm install -D rolldown

Basic Configuration

// rolldown.config.js — Rollup-compatible config format
import { defineConfig } from "rolldown";

export default defineConfig({
  input: "src/index.ts",
  output: {
    dir: "dist",
    format: "esm",
    sourcemap: true,
  },
});

Library Build

// rolldown.config.js — Build a library with multiple outputs
import { defineConfig } from "rolldown";

export default defineConfig({
  input: "src/index.ts",
  external: ["react", "react-dom"],  // Don't bundle peer deps
  output: [
    {
      dir: "dist",
      format: "esm",
      entryFileNames: "[name].js",
      sourcemap: true,
    },
    {
      dir: "dist",
      format: "cjs",
      entryFileNames: "[name].cjs",
      sourcemap: true,
    },
  ],
});

With Plugins

// rolldown.config.js — Using Rollup-compatible plugins
import { defineConfig } from "rolldown";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";

export default defineConfig({
  input: "src/index.ts",
  plugins: [
    resolve(),       // Resolve node_modules
    commonjs(),      // Convert CommonJS to ESM
  ],
  output: {
    dir: "dist",
    format: "esm",
  },
});

Build Commands

# Build
npx rolldown -c

# Build with specific config
npx rolldown -c rolldown.config.js

# Watch mode
npx rolldown -c --watch

Migration from Rollup

// package.json — Swap the dependency
- "rollup": "^4.0.0"
+ "rolldown": "^1.0.0"

// Config is compatible — rename if needed
// rollup.config.js → rolldown.config.js (optional)
// Most Rollup configs work unchanged. Key differences:
// ✅ TypeScript built-in — no @rollup/plugin-typescript needed
// ✅ Node resolve built-in — @rollup/plugin-node-resolve often unnecessary
// ✅ Most Rollup plugins compatible — plugin API is the same
// ⚠️ Some advanced plugin hooks may differ — check docs

Examples

Example 1: Migrate a Rollup library build

User prompt: "My library uses Rollup and builds are slow. Migrate to Rolldown."

The agent will swap rollup for rolldown, remove unnecessary plugins (TypeScript and node-resolve are built-in), and benchmark the improvement.

Example 2: Prepare a Vite project for Rolldown

User prompt: "I want to be ready when Vite switches to Rolldown. What should I do?"

The agent will audit the current Vite config for Rollup-specific plugin usage, identify potential compatibility issues, and suggest config changes.

Guidelines

  • Rollup-compatible config — same format, most plugins work
  • TypeScript built-in — no separate TypeScript plugin needed
  • Still in development — API may change; check compatibility for production use
  • Vite integration coming — Rolldown will replace Rollup in Vite's production builds
  • OXC ecosystem — part of the Rust JS toolchain (oxlint, oxc-resolver, Rolldown)
  • 10-100x faster than Rollup — Rust parallelism over JavaScript
  • Tree shaking built-in — same quality as Rollup
  • ESM-first — designed for modern JavaScript output
  • Watch mode supported--watch for development
  • Plugin compatibility — @rollup/plugin-* packages generally work

> related_skills --same-repo

> zustand

You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.

> zoho

Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.

> zod

You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.

> zipkin

Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.

┌ stats

installs/wk0
░░░░░░░░░░
github stars17
███░░░░░░░
first seenMar 17, 2026
└────────────

┌ repo

TerminalSkills/skills
by TerminalSkills
└────────────

┌ tags

└────────────