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>
This commit is contained in:
270
skills/tsdown/references/option-output-directory.md
Normal file
270
skills/tsdown/references/option-output-directory.md
Normal file
@@ -0,0 +1,270 @@
|
||||
# Output Directory
|
||||
|
||||
Configure the output directory for bundled files.
|
||||
|
||||
## Overview
|
||||
|
||||
By default, tsdown outputs bundled files to the `dist` directory. You can customize this location using the `outDir` option.
|
||||
|
||||
## Basic Usage
|
||||
|
||||
### CLI
|
||||
|
||||
```bash
|
||||
# Default output to dist/
|
||||
tsdown
|
||||
|
||||
# Custom output directory
|
||||
tsdown --out-dir build
|
||||
tsdown -d lib
|
||||
```
|
||||
|
||||
### Config File
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
outDir: 'build',
|
||||
})
|
||||
```
|
||||
|
||||
## Common Patterns
|
||||
|
||||
### Standard Library
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
format: ['esm', 'cjs'],
|
||||
outDir: 'dist', // Default
|
||||
dts: true,
|
||||
})
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```
|
||||
dist/
|
||||
├── index.mjs
|
||||
├── index.cjs
|
||||
└── index.d.ts
|
||||
```
|
||||
|
||||
### Separate Directories by Format
|
||||
|
||||
```ts
|
||||
export default defineConfig([
|
||||
{
|
||||
entry: ['src/index.ts'],
|
||||
format: ['esm'],
|
||||
outDir: 'dist/esm',
|
||||
},
|
||||
{
|
||||
entry: ['src/index.ts'],
|
||||
format: ['cjs'],
|
||||
outDir: 'dist/cjs',
|
||||
},
|
||||
])
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```
|
||||
dist/
|
||||
├── esm/
|
||||
│ └── index.js
|
||||
└── cjs/
|
||||
└── index.js
|
||||
```
|
||||
|
||||
### Monorepo Package
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
outDir: 'lib', // Custom directory
|
||||
clean: true,
|
||||
})
|
||||
```
|
||||
|
||||
### Build to Root
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
outDir: '.', // Output to project root (not recommended)
|
||||
clean: false, // Don't clean root!
|
||||
})
|
||||
```
|
||||
|
||||
**Warning:** Be careful when outputting to root to avoid deleting important files.
|
||||
|
||||
## Output Extensions
|
||||
|
||||
### Custom Extensions
|
||||
|
||||
Use `outExtensions` to control file extensions:
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
format: ['esm', 'cjs'],
|
||||
outDir: 'dist',
|
||||
outExtensions({ format }) {
|
||||
return {
|
||||
js: format === 'esm' ? '.mjs' : '.cjs',
|
||||
}
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### Default Extensions
|
||||
|
||||
| Format | Default Extension | With `type: "module"` |
|
||||
|--------|-------------------|----------------------|
|
||||
| `esm` | `.mjs` | `.js` |
|
||||
| `cjs` | `.cjs` | `.js` |
|
||||
| `iife` | `.global.js` | `.global.js` |
|
||||
| `umd` | `.umd.js` | `.umd.js` |
|
||||
|
||||
### ESM with .js Extension
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/index.ts'],
|
||||
format: ['esm'],
|
||||
outExtensions: () => ({ js: '.js' }),
|
||||
})
|
||||
```
|
||||
|
||||
Requires `"type": "module"` in package.json.
|
||||
|
||||
## File Naming
|
||||
|
||||
### Entry Names
|
||||
|
||||
Control output filenames based on entry names:
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: {
|
||||
index: 'src/index.ts',
|
||||
utils: 'src/utils.ts',
|
||||
},
|
||||
outDir: 'dist',
|
||||
})
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```
|
||||
dist/
|
||||
├── index.mjs
|
||||
└── utils.mjs
|
||||
```
|
||||
|
||||
### Glob Entry
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
entry: ['src/**/*.ts', '!**/*.test.ts'],
|
||||
outDir: 'dist',
|
||||
unbundle: true, // Preserve structure
|
||||
})
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```
|
||||
dist/
|
||||
├── index.mjs
|
||||
├── utils/
|
||||
│ └── helper.mjs
|
||||
└── components/
|
||||
└── button.mjs
|
||||
```
|
||||
|
||||
## Multiple Builds
|
||||
|
||||
### Same Output Directory
|
||||
|
||||
```ts
|
||||
export default defineConfig([
|
||||
{
|
||||
entry: ['src/index.ts'],
|
||||
outDir: 'dist',
|
||||
clean: true, // Clean first
|
||||
},
|
||||
{
|
||||
entry: ['src/cli.ts'],
|
||||
outDir: 'dist',
|
||||
clean: false, // Don't clean again
|
||||
},
|
||||
])
|
||||
```
|
||||
|
||||
### Different Output Directories
|
||||
|
||||
```ts
|
||||
export default defineConfig([
|
||||
{
|
||||
entry: ['src/index.ts'],
|
||||
format: ['esm', 'cjs'],
|
||||
outDir: 'dist/lib',
|
||||
},
|
||||
{
|
||||
entry: ['src/cli.ts'],
|
||||
format: ['esm'],
|
||||
outDir: 'dist/bin',
|
||||
},
|
||||
])
|
||||
```
|
||||
|
||||
## CLI Examples
|
||||
|
||||
```bash
|
||||
# Default
|
||||
tsdown
|
||||
|
||||
# Custom directory
|
||||
tsdown --out-dir build
|
||||
tsdown -d lib
|
||||
|
||||
# Nested directory
|
||||
tsdown --out-dir dist/lib
|
||||
|
||||
# With other options
|
||||
tsdown --out-dir build --format esm,cjs --dts
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
1. **Use default `dist`** for standard projects
|
||||
2. **Be careful with root** - avoid `outDir: '.'`
|
||||
3. **Clean before build** - use `clean: true`
|
||||
4. **Consistent naming** - match your project conventions
|
||||
5. **Separate by format** if needed for clarity
|
||||
6. **Check .gitignore** - ensure output dir is ignored
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Files Not in Expected Location
|
||||
|
||||
- Check `outDir` config
|
||||
- Verify build completed successfully
|
||||
- Look for typos in path
|
||||
|
||||
### Files Deleted Unexpectedly
|
||||
|
||||
- Check if `clean: true`
|
||||
- Ensure outDir doesn't overlap with source
|
||||
- Don't use root as outDir
|
||||
|
||||
### Permission Errors
|
||||
|
||||
- Check write permissions
|
||||
- Ensure directory isn't locked
|
||||
- Try different location
|
||||
|
||||
## Related Options
|
||||
|
||||
- [Cleaning](option-cleaning.md) - Clean output directory
|
||||
- [Entry](option-entry.md) - Entry points
|
||||
- [Output Format](option-output-format.md) - Module formats
|
||||
- [Unbundle](option-unbundle.md) - Preserve structure
|
||||
Reference in New Issue
Block a user