Files
agent-skills/skills/tsdown/references/reference-cli.md
Jason Woltje f5792c40be feat: Complete fleet — 94 skills across 10+ domains
Pulled ALL skills from 15 source repositories:
- anthropics/skills: 16 (docs, design, MCP, testing)
- obra/superpowers: 14 (TDD, debugging, agents, planning)
- coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth)
- better-auth/skills: 5 (auth patterns)
- vercel-labs/agent-skills: 5 (React, design, Vercel)
- antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo)
- Plus 13 individual skills from various repos

Mosaic Stack is not limited to coding — the Orchestrator and
subagents serve coding, business, design, marketing, writing,
logistics, analysis, and more.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:27:42 -06:00

396 lines
5.7 KiB
Markdown

# CLI Reference
Complete reference for tsdown command-line interface.
## Overview
All CLI flags can also be set in the config file. CLI flags override config file options.
## Flag Patterns
CLI flag mapping rules:
- `--foo` sets `foo: true`
- `--no-foo` sets `foo: false`
- `--foo.bar` sets `foo: { bar: true }`
- `--format esm --format cjs` sets `format: ['esm', 'cjs']`
CLI flags support both camelCase and kebab-case. For example, `--outDir` and `--out-dir` are equivalent.
## Basic Commands
### Build
```bash
# Build with default config
tsdown
# Build specific files
tsdown src/index.ts src/cli.ts
# Build with watch mode
tsdown --watch
```
## Configuration
### `--config, -c <filename>`
Specify custom config file:
```bash
tsdown --config build.config.ts
tsdown -c custom-config.js
```
### `--no-config`
Disable config file loading:
```bash
tsdown --no-config src/index.ts
```
### `--config-loader <loader>`
Choose config loader (`auto`, `native`, `unrun`):
```bash
tsdown --config-loader unrun
```
### `--tsconfig <file>`
Specify TypeScript config file:
```bash
tsdown --tsconfig tsconfig.build.json
```
## Entry Points
### `[...files]`
Specify entry files as arguments:
```bash
tsdown src/index.ts src/utils.ts
```
## Output Options
### `--format <format>`
Output format (`esm`, `cjs`, `iife`, `umd`):
```bash
tsdown --format esm
tsdown --format esm --format cjs
```
### `--out-dir, -d <dir>`
Output directory:
```bash
tsdown --out-dir lib
tsdown -d dist
```
### `--dts`
Generate TypeScript declarations:
```bash
tsdown --dts
```
### `--clean`
Clean output directory before build:
```bash
tsdown --clean
```
## Build Options
### `--target <target>`
JavaScript target version:
```bash
tsdown --target es2020
tsdown --target node18
tsdown --target chrome100
tsdown --no-target # Disable transformations
```
### `--platform <platform>`
Target platform (`node`, `browser`, `neutral`):
```bash
tsdown --platform node
tsdown --platform browser
```
### `--minify`
Enable minification:
```bash
tsdown --minify
tsdown --no-minify
```
### `--sourcemap`
Generate source maps:
```bash
tsdown --sourcemap
tsdown --sourcemap inline
```
### `--treeshake`
Enable/disable tree shaking:
```bash
tsdown --treeshake
tsdown --no-treeshake
```
## Dependencies
### `--external <module>`
Mark module as external (not bundled):
```bash
tsdown --external react --external react-dom
```
### `--shims`
Add ESM/CJS compatibility shims:
```bash
tsdown --shims
```
## Development
### `--watch, -w [path]`
Enable watch mode:
```bash
tsdown --watch
tsdown -w
tsdown --watch src # Watch specific directory
```
### `--ignore-watch <path>`
Ignore paths in watch mode:
```bash
tsdown --watch --ignore-watch test
```
### `--on-success <command>`
Run command after successful build:
```bash
tsdown --watch --on-success "echo Build complete!"
```
## Environment Variables
### `--env.* <value>`
Set compile-time environment variables:
```bash
tsdown --env.NODE_ENV=production --env.API_URL=https://api.example.com
```
Access as `import.meta.env.*` or `process.env.*`.
### `--env-file <file>`
Load environment variables from file:
```bash
tsdown --env-file .env.production
```
### `--env-prefix <prefix>`
Filter environment variables by prefix (default: `TSDOWN_`):
```bash
tsdown --env-file .env --env-prefix APP_ --env-prefix TSDOWN_
```
## Assets
### `--copy <dir>`
Copy directory to output:
```bash
tsdown --copy public
tsdown --copy assets --copy static
```
## Package Management
### `--exports`
Auto-generate package.json exports field:
```bash
tsdown --exports
```
### `--publint`
Enable package validation:
```bash
tsdown --publint
```
### `--attw`
Enable "Are the types wrong" validation:
```bash
tsdown --attw
```
### `--unused`
Check for unused dependencies:
```bash
tsdown --unused
```
## Logging
### `--log-level <level>`
Set logging verbosity (`silent`, `error`, `warn`, `info`):
```bash
tsdown --log-level error
tsdown --log-level warn
```
### `--report` / `--no-report`
Enable/disable build report:
```bash
tsdown --no-report # Disable size report
tsdown --report # Enable (default)
```
### `--debug [feat]`
Show debug logs:
```bash
tsdown --debug
tsdown --debug rolldown # Debug specific feature
```
## Integration
### `--from-vite [vitest]`
Extend Vite or Vitest config:
```bash
tsdown --from-vite # Use vite.config.*
tsdown --from-vite vitest # Use vitest.config.*
```
## Common Usage Patterns
### Basic Build
```bash
tsdown
```
### Library (ESM + CJS + Types)
```bash
tsdown --format esm --format cjs --dts --clean
```
### Production Build
```bash
tsdown --minify --clean --no-report
```
### Development (Watch)
```bash
tsdown --watch --sourcemap
```
### Browser Bundle (IIFE)
```bash
tsdown --format iife --platform browser --minify
```
### Node.js CLI Tool
```bash
tsdown --format esm --platform node --shims
```
### Monorepo Package
```bash
tsdown --clean --dts --exports --publint
```
### With Environment Variables
```bash
tsdown --env-file .env.production --env.BUILD_TIME=$(date +%s)
```
### Copy Assets
```bash
tsdown --copy public --copy assets --clean
```
## Tips
1. **Use config file** for complex setups
2. **CLI flags override** config file options
3. **Chain multiple formats** for multi-target builds
4. **Use --clean** to avoid stale files
5. **Enable --dts** for TypeScript libraries
6. **Use --watch** during development
7. **Add --on-success** for post-build tasks
8. **Use --exports** to auto-generate package.json fields
## Related Documentation
- [Config File](option-config-file.md) - Configuration file options
- [Entry](option-entry.md) - Entry point configuration
- [Output Format](option-output-format.md) - Format options
- [Watch Mode](option-watch-mode.md) - Watch mode details