Files
agent-skills/skills/antfu/references/library-development.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

1.8 KiB

name, description
name description
library-development Building and publishing TypeScript libraries with tsdown. Use when creating npm packages, configuring library bundling, or setting up package.json exports.

Library Development

Aspect Choice
Bundler tsdown
Output Pure ESM only (no CJS)
DTS Generated via tsdown
Exports Auto-generated via tsdown

tsdown Configuration

Use tsdown with these options enabled:

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

export default defineConfig({
  entry: ['src/index.ts'],
  format: ['esm'],
  dts: true,
  exports: true,
})
Option Value Purpose
format ['esm'] Pure ESM, no CommonJS
dts true Generate .d.ts files
exports true Auto-update exports field in package.json

Multiple Entry Points

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

The exports: true option auto-generates the exports field in package.json when running tsdown.


package.json

Required fields for pure ESM library:

{
  "type": "module",
  "main": "./dist/index.mjs",
  "module": "./dist/index.mjs",
  "types": "./dist/index.d.mts",
  "files": ["dist"],
  "scripts": {
    "build": "tsdown",
    "prepack": "pnpm build",
    "test": "vitest",
    "release": "bumpp -r"
  }
}

The exports field is managed by tsdown when exports: true.

prepack Script

For each public package, add "prepack": "pnpm build" to scripts. This ensures the package is automatically built before publishing (e.g., when running npm publish or pnpm publish). This prevents accidentally publishing stale or missing build artifacts.