{"id":"74e48003-ea05-4d57-867a-172b31726dc6","shortId":"RENGku","kind":"skill","title":"Tsdown","tagline":"Skills skill by Antfu","description":"# tsdown - The Elegant Library Bundler\n\nBlazing-fast bundler for TypeScript/JavaScript libraries powered by Rolldown and Oxc.\n\n## When to Use\n\n- Building TypeScript/JavaScript libraries for npm\n- Generating TypeScript declaration files (.d.ts)\n- Bundling for multiple formats (ESM, CJS, IIFE, UMD)\n- Optimizing bundles with tree shaking and minification\n- Migrating from tsup with minimal changes\n- Building React, Vue, Solid, or Svelte component libraries\n\n## Quick Start\n\n```bash\n# Install\npnpm add -D tsdown\n\n# Basic usage\nnpx tsdown\n\n# With config file\nnpx tsdown --config tsdown.config.ts\n\n# Watch mode\nnpx tsdown --watch\n\n# Migrate from tsup\nnpx tsdown-migrate\n```\n\n## Basic Configuration\n\n```ts\nimport { defineConfig } from 'tsdown'\n\nexport default defineConfig({\n  entry: ['./src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  clean: true,\n})\n```\n\n## Core References\n\n| Topic | Description | Reference |\n|-------|-------------|-----------|\n| Getting Started | Installation, first bundle, CLI basics | [guide-getting-started](references/guide-getting-started.md) |\n| Configuration File | Config file formats, multiple configs, workspace | [option-config-file](references/option-config-file.md) |\n| CLI Reference | All CLI commands and options | [reference-cli](references/reference-cli.md) |\n| Migrate from tsup | Migration guide and compatibility notes | [guide-migrate-from-tsup](references/guide-migrate-from-tsup.md) |\n| Plugins | Rolldown, Rollup, Unplugin support | [advanced-plugins](references/advanced-plugins.md) |\n| Hooks | Lifecycle hooks for custom logic | [advanced-hooks](references/advanced-hooks.md) |\n| Programmatic API | Build from Node.js scripts | [advanced-programmatic](references/advanced-programmatic.md) |\n| Rolldown Options | Pass options directly to Rolldown | [advanced-rolldown-options](references/advanced-rolldown-options.md) |\n| CI Environment | CI detection, `'ci-only'` / `'local-only'` values | [advanced-ci](references/advanced-ci.md) |\n\n## Build Options\n\n| Option | Usage | Reference |\n|--------|-------|-----------|\n| Entry points | `entry: ['src/*.ts', '!**/*.test.ts']` | [option-entry](references/option-entry.md) |\n| Output formats | `format: ['esm', 'cjs', 'iife', 'umd']` | [option-output-format](references/option-output-format.md) |\n| Output directory | `outDir: 'dist'`, `outExtensions` | [option-output-directory](references/option-output-directory.md) |\n| Type declarations | `dts: true`, `dts: { sourcemap, compilerOptions, vue }` | [option-dts](references/option-dts.md) |\n| Target environment | `target: 'es2020'`, `target: 'esnext'` | [option-target](references/option-target.md) |\n| Platform | `platform: 'node'`, `platform: 'browser'` | [option-platform](references/option-platform.md) |\n| Tree shaking | `treeshake: true`, custom options | [option-tree-shaking](references/option-tree-shaking.md) |\n| Minification | `minify: true`, `minify: 'dce-only'` | [option-minification](references/option-minification.md) |\n| Source maps | `sourcemap: true`, `'inline'`, `'hidden'` | [option-sourcemap](references/option-sourcemap.md) |\n| Watch mode | `watch: true`, watch options | [option-watch-mode](references/option-watch-mode.md) |\n| Cleaning | `clean: true`, clean patterns | [option-cleaning](references/option-cleaning.md) |\n| Log level | `logLevel: 'silent'`, `failOnWarn: false` | [option-log-level](references/option-log-level.md) |\n\n## Dependency Handling\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Never bundle | `deps: { neverBundle: ['react', /^@myorg\\//] }` | [option-dependencies](references/option-dependencies.md) |\n| Always bundle | `deps: { alwaysBundle: ['dep-to-bundle'] }` | [option-dependencies](references/option-dependencies.md) |\n| Only bundle | `deps: { onlyBundle: ['cac', 'bumpp'] }` - Whitelist | [option-dependencies](references/option-dependencies.md) |\n| Skip node_modules | `deps: { skipNodeModulesBundle: true }` | [option-dependencies](references/option-dependencies.md) |\n| Auto external | Automatic peer/dependency externalization | [option-dependencies](references/option-dependencies.md) |\n\n## Output Enhancement\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Shims | `shims: true` - Add ESM/CJS compatibility | [option-shims](references/option-shims.md) |\n| CJS default | `cjsDefault: true` (default) / `false` | [option-cjs-default](references/option-cjs-default.md) |\n| Package exports | `exports: true` - Auto-generate exports field | [option-package-exports](references/option-package-exports.md) |\n| CSS handling | **[experimental]** `css: { ... }` — full pipeline with preprocessors, Lightning CSS, PostCSS, code splitting; requires `@tsdown/css` | [option-css](references/option-css.md) |\n| CSS inject | `css: { inject: true }` — preserve CSS imports in JS output | [option-css](references/option-css.md) |\n| Unbundle mode | `unbundle: true` - Preserve directory structure | [option-unbundle](references/option-unbundle.md) |\n| Root directory | `root: 'src'` - Control output directory mapping | [option-root](references/option-root.md) |\n| Executable | **[experimental]** `exe: true` - Bundle as standalone executable, cross-platform via `@tsdown/exe` | [option-exe](references/option-exe.md) |\n| Package validation | `publint: true`, `attw: true` - Validate package | [option-lint](references/option-lint.md) |\n\n## Framework & Runtime Support\n\n| Framework | Guide | Reference |\n|-----------|-------|-----------|\n| React | JSX transform, React Compiler | [recipe-react](references/recipe-react.md) |\n| Vue | SFC support, JSX | [recipe-vue](references/recipe-vue.md) |\n| Solid | SolidJS JSX transform | [recipe-solid](references/recipe-solid.md) |\n| Svelte | Svelte component libraries (source distribution recommended) | [recipe-svelte](references/recipe-svelte.md) |\n| WASM | WebAssembly modules via `rolldown-plugin-wasm` | [recipe-wasm](references/recipe-wasm.md) |\n\n## Common Patterns\n\n### Basic Library Bundle\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  clean: true,\n})\n```\n\n### Multiple Entry Points\n\n```ts\nexport default defineConfig({\n  entry: {\n    index: 'src/index.ts',\n    utils: 'src/utils.ts',\n    cli: 'src/cli.ts',\n  },\n  format: ['esm', 'cjs'],\n  dts: true,\n})\n```\n\n### Browser Library (IIFE/UMD)\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  format: ['iife'],\n  globalName: 'MyLib',\n  platform: 'browser',\n  minify: true,\n})\n```\n\n### React Component Library\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.tsx'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  deps: {\n    neverBundle: ['react', 'react-dom'],\n  },\n  inputOptions: {\n    jsx: { runtime: 'automatic' },\n  },\n})\n```\n\n### Preserve Directory Structure\n\n```ts\nexport default defineConfig({\n  entry: ['src/**/*.ts', '!**/*.test.ts'],\n  unbundle: true, // Preserve file structure\n  format: ['esm'],\n  dts: true,\n})\n```\n\n### CI-Aware Configuration\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  failOnWarn: 'ci-only',  // opt-in: fail on warnings in CI\n  publint: 'ci-only',\n  attw: 'ci-only',\n})\n```\n\n### WASM Support\n\n```ts\nimport { wasm } from 'rolldown-plugin-wasm'\nimport { defineConfig } from 'tsdown'\n\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  plugins: [wasm()],\n})\n```\n\n### Library with CSS and Sass\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  target: 'chrome100',\n  css: {\n    preprocessorOptions: {\n      scss: {\n        additionalData: `@use \"src/styles/variables\" as *;`,\n      },\n    },\n  },\n})\n```\n\n### Standalone Executable\n\n```ts\nexport default defineConfig({\n  entry: ['src/cli.ts'],\n  exe: true,\n})\n```\n\n### Cross-Platform Executable (requires `@tsdown/exe`)\n\n```ts\nexport default defineConfig({\n  entry: ['src/cli.ts'],\n  exe: {\n    targets: [\n      { platform: 'linux', arch: 'x64', nodeVersion: '25.7.0' },\n      { platform: 'darwin', arch: 'arm64', nodeVersion: '25.7.0' },\n      { platform: 'win', arch: 'x64', nodeVersion: '25.7.0' },\n    ],\n  },\n})\n```\n\n### Advanced with Hooks\n\n```ts\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n  hooks: {\n    'build:before': async (context) => {\n      console.log('Building...')\n    },\n    'build:done': async (context) => {\n      console.log('Build complete!')\n    },\n  },\n})\n```\n\n## Configuration Features\n\n### Multiple Configs\n\nExport an array for multiple build configurations:\n\n```ts\nexport default defineConfig([\n  {\n    entry: ['src/index.ts'],\n    format: ['esm', 'cjs'],\n    dts: true,\n  },\n  {\n    entry: ['src/cli.ts'],\n    format: ['esm'],\n    platform: 'node',\n  },\n])\n```\n\n### Conditional Config\n\nUse functions for dynamic configuration:\n\n```ts\nexport default defineConfig((options) => {\n  const isDev = options.watch\n  return {\n    entry: ['src/index.ts'],\n    format: ['esm', 'cjs'],\n    minify: !isDev,\n    sourcemap: isDev,\n  }\n})\n```\n\n### Workspace/Monorepo\n\nUse glob patterns to build multiple packages:\n\n```ts\nexport default defineConfig({\n  workspace: 'packages/*',\n  entry: ['src/index.ts'],\n  format: ['esm', 'cjs'],\n  dts: true,\n})\n```\n\n## CLI Quick Reference\n\n```bash\n# Basic commands\ntsdown                          # Build once\ntsdown --watch                  # Watch mode\ntsdown --config custom.ts       # Custom config\nnpx tsdown-migrate              # Migrate from tsup\n\n# Output options\ntsdown --format esm,cjs        # Multiple formats\ntsdown -d lib                  # Custom output directory (--out-dir)\ntsdown --minify                # Enable minification\ntsdown --dts                   # Generate declarations\ntsdown --exe                   # Bundle as standalone executable\ntsdown --unbundle              # Bundleless mode\n\n# Entry options\ntsdown src/index.ts            # Single entry\ntsdown src/*.ts                # Glob patterns\ntsdown src/a.ts src/b.ts       # Multiple entries\n\n# Workspace / Monorepo\ntsdown -W                      # Enable workspace mode\ntsdown -W -F my-package        # Filter specific package\ntsdown --filter /^pkg-/        # Filter by regex\n\n# Development\ntsdown --watch                 # Watch mode\ntsdown --sourcemap             # Generate source maps\ntsdown --clean                 # Clean output directory\ntsdown --from-vite             # Reuse Vite config\ntsdown --tsconfig tsconfig.build.json  # Custom tsconfig\n```\n\n## Best Practices\n\n1. **Always generate type declarations** for TypeScript libraries:\n   ```ts\n   { dts: true }\n   ```\n\n2. **Externalize dependencies** to avoid bundling unnecessary code:\n   ```ts\n   { deps: { neverBundle: [/^react/, /^@myorg\\//] } }\n   ```\n\n3. **Use tree shaking** for optimal bundle size:\n   ```ts\n   { treeshake: true }\n   ```\n\n4. **Enable minification** for production builds:\n   ```ts\n   { minify: true }\n   ```\n\n5. **Add shims** for better ESM/CJS compatibility:\n   ```ts\n   { shims: true }  // Adds __dirname, __filename, etc.\n   ```\n\n6. **Auto-generate package.json exports**:\n   ```ts\n   { exports: true }  // Creates proper exports field\n   ```\n\n7. **Use watch mode** during development:\n   ```bash\n   tsdown --watch\n   ```\n\n8. **Preserve structure** for utilities with many files:\n   ```ts\n   { unbundle: true }  // Keep directory structure\n   ```\n\n9. **Validate packages** in CI before publishing:\n   ```ts\n   { publint: 'ci-only', attw: 'ci-only' }\n   ```\n\n## Resources\n\n- Documentation: https://tsdown.dev\n- GitHub: https://github.com/rolldown/tsdown\n- Rolldown: https://rolldown.rs\n- Migration Guide: https://tsdown.dev/guide/migrate-from-tsup","tags":["tsdown","skills","antfu"],"capabilities":["skill","source-antfu","category-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/antfu/skills/tsdown","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under antfu/skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T20:40:26.765Z","embedding":null,"createdAt":"2026-04-18T20:26:34.225Z","updatedAt":"2026-04-23T20:40:26.765Z","lastSeenAt":"2026-04-23T20:40:26.765Z","tsv":"'/guide/migrate-from-tsup':1167 '/rolldown/tsdown':1160 '/src/index.ts':107 '1':1044 '2':1055 '25.7.0':802,808,814 '3':1068 '4':1079 '5':1088 '6':1102 '7':1115 '8':1124 '9':1138 'add':70,422,1089,1098 'additionaldata':769 'advanc':176,186,196,207,223,815 'advanced-ci':222 'advanced-hook':185 'advanced-plugin':175 'advanced-programmat':195 'advanced-rolldown-opt':206 'alway':372,1045 'alwaysbundl':375 'antfu':5 'api':190 'arch':799,805,811 'arm64':806 'array':849 'async':832,838 'attw':532,723,1150 'auto':405,445,1104 'auto-gener':444,1103 'automat':407,671 'avoid':1059 'awar':694 'bash':67,920,1121 'basic':73,96,126,596,921 'best':1042 'better':1092 'blaze':12 'blazing-fast':11 'browser':289,631,645 'build':26,57,191,226,830,835,836,841,852,901,924,1084 'bumpp':389 'bundl':36,45,124,363,373,379,385,515,598,969,1060,1074 'bundleless':975 'bundler':10,14 'cac':388 'category-skills' 'chang':56 'chrome100':765 'ci':211,213,216,224,693,709,718,721,725,1142,1148,1152 'ci-awar':692 'ci-on':215,708,720,724,1147,1151 'cjs':41,110,245,429,437,607,628,659,704,761,826,862,891,914,947 'cjsdefault':431 'clean':113,337,338,340,344,610,1026,1027 'cli':125,145,148,154,624,917 'code':465,1062 'command':149,922 'common':594 'compat':162,424,1094 'compil':550 'compileropt':269 'complet':842 'compon':63,573,649 'condit':871 'config':78,82,134,138,142,846,872,931,934,1036 'configur':97,132,695,843,853,877 'console.log':834,840 'const':883 'context':833,839 'control':503 'core':115 'creat':1111 'cross':520,784 'cross-platform':519,783 'css':454,457,463,471,473,475,479,486,750,766 'custom':183,298,933,953,1040 'custom.ts':932 'd':71,951 'd.ts':35 'darwin':804 'dce':310 'dce-on':309 'declar':33,264,966,1048 'default':104,430,433,438,601,617,636,653,677,698,742,755,777,791,820,856,880,906 'defineconfig':100,105,602,618,637,654,678,699,738,743,756,778,792,821,857,881,907 'dep':364,374,377,386,398,662,1064 'dep-to-bundl':376 'depend':357,370,382,393,403,412,1057 'descript':118 'detect':214 'develop':1015,1120 'dir':958 'direct':203 'directori':254,261,493,500,505,673,955,1029,1136 'dirnam':1099 'dist':256 'distribut':576 'document':1155 'dom':667 'done':837 'dts':111,265,267,273,608,629,660,690,705,762,827,863,915,964,1053 'dynam':876 'eleg':8 'enabl':961,997,1080 'enhanc':415 'entri':106,231,233,239,603,613,619,638,655,679,700,744,757,779,793,822,858,865,887,910,977,982,992 'environ':212,276 'es2020':278 'esm':40,109,244,606,627,658,689,703,760,825,861,868,890,913,946 'esm/cjs':423,1093 'esnext':280 'etc':1101 'exe':513,526,781,795,968 'execut':511,518,774,786,972 'experiment':456,512 'export':103,441,442,447,452,600,616,635,652,676,697,741,754,776,790,819,847,855,879,905,1107,1109,1113 'extern':406,409,1056 'f':1002 'fail':714 'failonwarn':350,707 'fals':351,434 'fast':13 'featur':359,416,844 'field':448,1114 'file':34,79,133,135,143,686,1131 'filenam':1100 'filter':1006,1010,1012 'first':123 'format':39,108,136,242,243,251,605,626,640,657,688,702,759,824,860,867,889,912,945,949 'framework':540,543 'from-vit':1031 'full':458 'function':874 'generat':31,446,965,1022,1046,1105 'get':120,129 'github':1157 'github.com':1159 'github.com/rolldown/tsdown':1158 'glob':898,986 'globalnam':642 'guid':128,160,165,544,1164 'guide-getting-start':127 'guide-migrate-from-tsup':164 'handl':358,455 'hidden':321 'hook':179,181,187,817,829 'iif':42,246,641 'iife/umd':633 'import':99,480,730,737 'index':620 'inject':474,476 'inlin':320 'inputopt':668 'instal':68,122 'isdev':884,893,895 'js':482 'jsx':547,558,565,669 'keep':1135 'level':347,355 'lib':952 'librari':9,17,28,64,574,597,632,650,748,1051 'lifecycl':180 'lightn':462 'lint':538 'linux':798 'local':219 'local-on':218 'log':346,354 'logic':184 'loglevel':348 'mani':1130 'map':317,506,1024 'migrat':51,89,95,156,159,166,938,939,1163 'minif':50,305,314,962,1081 'minifi':306,308,646,892,960,1086 'minim':55 'mode':85,327,335,489,929,976,999,1019,1118 'modul':397,584 'monorepo':994 'multipl':38,137,612,845,851,902,948,991 'my-packag':1003 'mylib':643 'myorg':367,1067 'never':362 'neverbundl':365,663,1065 'node':287,396,870 'node.js':193 'nodevers':801,807,813 'note':163 'npm':30 'npx':75,80,86,92,935 'onlybundl':387 'opt':712 'opt-in':711 'optim':44,1073 'option':141,151,200,202,209,227,228,238,249,259,272,282,291,299,301,313,323,331,333,343,353,369,381,392,402,411,426,436,450,470,485,496,508,525,537,882,943,978 'option-cjs-default':435 'option-clean':342 'option-config-fil':140 'option-css':469,484 'option-depend':368,380,391,401,410 'option-dt':271 'option-entri':237 'option-ex':524 'option-lint':536 'option-log-level':352 'option-minif':312 'option-output-directori':258 'option-output-format':248 'option-package-export':449 'option-platform':290 'option-root':507 'option-shim':425 'option-sourcemap':322 'option-target':281 'option-tree-shak':300 'option-unbundl':495 'option-watch-mod':332 'options.watch':885 'out-dir':956 'outdir':255 'outextens':257 'output':241,250,253,260,414,483,504,942,954,1028 'oxc':22 'packag':440,451,528,535,903,909,1005,1008,1140 'package.json':1106 'pass':201 'pattern':341,595,899,987 'peer/dependency':408 'pipelin':459 'pkg':1011 'platform':285,286,288,292,521,644,785,797,803,809,869 'plugin':170,177,588,735,746 'pnpm':69 'point':232,614 'postcss':464 'power':18 'practic':1043 'preprocessor':461 'preprocessoropt':767 'preserv':478,492,672,685,1125 'product':1083 'programmat':189,197 'proper':1112 'publint':530,719,1146 'publish':1144 'quick':65,918 'react':58,366,546,549,553,648,664,666,1066 'react-dom':665 'recip':552,560,568,579,591 'recipe-react':551 'recipe-solid':567 'recipe-svelt':578 'recipe-vu':559 'recipe-wasm':590 'recommend':577 'refer':116,119,146,153,230,361,418,545,919 'reference-c':152 'references/advanced-ci.md':225 'references/advanced-hooks.md':188 'references/advanced-plugins.md':178 'references/advanced-programmatic.md':198 'references/advanced-rolldown-options.md':210 'references/guide-getting-started.md':131 'references/guide-migrate-from-tsup.md':169 'references/option-cjs-default.md':439 'references/option-cleaning.md':345 'references/option-config-file.md':144 'references/option-css.md':472,487 'references/option-dependencies.md':371,383,394,404,413 'references/option-dts.md':274 'references/option-entry.md':240 'references/option-exe.md':527 'references/option-lint.md':539 'references/option-log-level.md':356 'references/option-minification.md':315 'references/option-output-directory.md':262 'references/option-output-format.md':252 'references/option-package-exports.md':453 'references/option-platform.md':293 'references/option-root.md':510 'references/option-shims.md':428 'references/option-sourcemap.md':325 'references/option-target.md':284 'references/option-tree-shaking.md':304 'references/option-unbundle.md':498 'references/option-watch-mode.md':336 'references/recipe-react.md':554 'references/recipe-solid.md':570 'references/recipe-svelte.md':581 'references/recipe-vue.md':562 'references/recipe-wasm.md':593 'references/reference-cli.md':155 'regex':1014 'requir':467,787 'resourc':1154 'return':886 'reus':1034 'rolldown':20,171,199,205,208,587,734,1161 'rolldown-plugin-wasm':586,733 'rolldown.rs':1162 'rollup':172 'root':499,501,509 'runtim':541,670 'sass':752 'script':194 'scss':768 'sfc':556 'shake':48,295,303,1071 'shim':419,420,427,1090,1096 'silent':349 'singl':981 'size':1075 'skill':2,3 'skip':395 'skipnodemodulesbundl':399 'solid':60,563,569 'solidj':564 'sourc':316,575,1023 'source-antfu' 'sourcemap':268,318,324,894,1021 'specif':1007 'split':466 'src':234,502,680,984 'src/a.ts':989 'src/b.ts':990 'src/cli.ts':625,780,794,866 'src/index.ts':604,621,639,701,745,758,823,859,888,911,980 'src/index.tsx':656 'src/styles/variables':771 'src/utils.ts':623 'standalon':517,773,971 'start':66,121,130 'structur':494,674,687,1126,1137 'support':174,542,557,728 'svelt':62,571,572,580 'target':275,277,279,283,764,796 'test.ts':236,682 'topic':117 'transform':548,566 'tree':47,294,302,1070 'treeshak':296,1077 'true':112,114,266,297,307,319,329,339,400,421,432,443,477,491,514,531,533,609,611,630,647,661,684,691,706,763,782,828,864,916,1054,1078,1087,1097,1110,1134 'ts':98,235,599,615,634,651,675,681,696,729,753,775,789,818,854,878,904,985,1052,1063,1076,1085,1095,1108,1132,1145 'tsconfig':1038,1041 'tsconfig.build.json':1039 'tsdown':1,6,72,76,81,87,94,102,740,923,926,930,937,944,950,959,963,967,973,979,983,988,995,1000,1009,1016,1020,1025,1030,1037,1122 'tsdown-migr':93,936 'tsdown.config.ts':83 'tsdown.dev':1156,1166 'tsdown.dev/guide/migrate-from-tsup':1165 'tsdown/css':468 'tsdown/exe':523,788 'tsup':53,91,158,168,941 'type':263,1047 'typescript':32,1050 'typescript/javascript':16,27 'umd':43,247 'unbundl':488,490,497,683,974,1133 'unnecessari':1061 'unplugin':173 'usag':74,229,360,417 'use':25,770,873,897,1069,1116 'util':622,1128 'valid':529,534,1139 'valu':221 'via':522,585 'vite':1033,1035 'vue':59,270,555,561 'w':996,1001 'warn':716 'wasm':582,589,592,727,731,736,747 'watch':84,88,326,328,330,334,927,928,1017,1018,1117,1123 'webassembl':583 'whitelist':390 'win':810 'workspac':139,908,993,998 'workspace/monorepo':896 'x64':800,812","prices":[{"id":"9c8642d0-d219-4cef-ae37-ffeabc72830b","listingId":"74e48003-ea05-4d57-867a-172b31726dc6","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"antfu","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:34.225Z"}],"sources":[{"listingId":"74e48003-ea05-4d57-867a-172b31726dc6","source":"github","sourceId":"antfu/skills/tsdown","sourceUrl":"https://github.com/antfu/skills/tree/main/skills/tsdown","isPrimary":false,"firstSeenAt":"2026-04-18T21:53:49.581Z","lastSeenAt":"2026-04-23T18:53:29.622Z"},{"listingId":"74e48003-ea05-4d57-867a-172b31726dc6","source":"skills_sh","sourceId":"antfu/skills/tsdown","sourceUrl":"https://skills.sh/antfu/skills/tsdown","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:34.225Z","lastSeenAt":"2026-04-23T20:40:26.765Z"}],"details":{"listingId":"74e48003-ea05-4d57-867a-172b31726dc6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"antfu","slug":"tsdown","source":"skills_sh","category":"skills","skills_sh_url":"https://skills.sh/antfu/skills/tsdown"},"updatedAt":"2026-04-23T20:40:26.765Z"}}