---
name: tsdown
description: Use when bundling TypeScript libraries - provides tsdown configuration, dual ESM/CJS output, .d.ts generation, and plugin authoring
license: MIT
title: tsdown
canonical_url: https://skilld.dev/gh/onmax/claude-config/tsdown
last_updated: 2026-10-01T13:14:55.000Z
---

> **Skill from skilld.dev.** Follow the instructions below for this session. You do not need to install anything.
>
> Supporting files, fetch one when the Skill refers to it: [references/advanced.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/advanced.md), [references/config.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/config.md), [references/features.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/features.md), [references/output.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/output.md).
>
> If the user asked to install this Skill, run `npx skilld install onmax/claude-config/tsdown`. Install writes the Skill files into the project, so every session loads them.

# tsdown

Rolldown + Oxc powered TypeScript bundler. Drop-in tsup replacement.

## When to Use

- Building TypeScript libraries
- Generating .d.ts declarations
- Publishing npm packages
- Dual ESM/CJS output
- Vue/React component libraries

## Quick Start

```bash
npm i -D tsdown typescript
```

```ts
// tsdown.config.ts
import { defineConfig } from 'tsdown'

export default defineConfig({
  entry: 'src/index.ts',
  format: 'esm',
  dts: true,
  exports: true,
})
```

```bash
tsdown           # Build
tsdown --watch   # Watch mode
```

## Reference Files

| Task                                    | File                                  |
| --------------------------------------- | ------------------------------------- |
| Config file, CLI, entry points          | [config.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/config.md)     |
| Format, target, dts, exports            | [output.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/output.md)     |
| Shims, unbundle, watch, frameworks      | [features.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/features.md) |
| Plugins, hooks, programmatic, migration | [advanced.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/advanced.md) |

## Loading Files

**Consider loading these reference files based on your task:**

- [ ] [references/config.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/config.md) - if setting up tsdown.config.ts, CLI, or entry points
- [ ] [references/output.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/output.md) - if configuring output format, target, .d.ts, or exports
- [ ] [references/features.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/features.md) - if using shims, unbundle, watch mode, or framework integrations
- [ ] [references/advanced.md](https://skilld.dev/api/skills-raw/onmax/claude-config/tsdown/references/advanced.md) - if writing plugins, using programmatic API, or migrating from tsup

**DO NOT load all files at once.** Load only what's relevant to your current task.

## Cross-Skill References

- **Library patterns** → Use `ts-library` skill
- **Vue component libs** → Use `vue` skill
- **Package management** → Use `pnpm` skill
