tsdown
- 0.23.1 is the latest, published 10 October 2026.
- No known security advisory.
- 0.x: 170 releases since 29 October 2023, 7 in the last 90 days.
Releases in the last 90 days
Feed of releases and advisoriesEvery stable release, newest first. Notes are quoted as the maintainers published them.
0.23.1
10 October 2026Preserve false tsconfig option
Bug Fixes
Preserve false tsconfig option
entry: Honor custom root for object entry
pkg: Pack tarball inside
npm publish --dry-run
0.23.0
3 September 2026Most users can upgrade directly. Before upgrading, run one final build with tsdown@0.22.14 and resolve all deprecation warnings.
Migration Guide
Most users can upgrade directly. Before upgrading, run one final build with
tsdown@0.22.14and resolve all deprecation warnings.- breaking
config:
bundle: false→unbundle: true;bundle: truecan be removed - breaking
config:
outExtension→outExtensions - breaking
config:
publicDir/--public-dir→copy/--copy - breaking
config:
removeNodeProtocol: true→nodeProtocol: 'strip' - breaking
config:
injectStyle→css.inject - breaking
deps:
inlineOnly/deps.onlyAllowBundle→deps.onlyBundle - breaking
deps:
skipNodeModulesBundle: true→deps.neverBundle: true - breaking
deps:
resolveDepSubpathnow defaults tofalse; set it totrueto preserve the previous behavior - breaking
dts:
rolldown-plugin-dtswas upgraded from0.27.13to0.28.5 - breaking
dts:
dts.oxc: true→dts.generator: 'oxc' - breaking
dts:
dts.tsgo: true→dts.generator: 'tsgo';oxcandtsgoobjects now only configure their respective generators - breaking
dts:
dts.volarPlugins→dts.customLanguages; rename each language'screatehook tocreateVolarPlugins - breaking
dts: Custom languages, including
vue, now throw when combined with an incompatible generator - breaking
dts:
dts.cjsReexportwas removed; dual-format builds now generate CJS declarations in a separate pass - breaking
attw: The default profile changed from
stricttoesm-only; setprofile: 'strict'to preserve the previous checks - breaking
programmatic API:
build()now returns{ bundles, watch }; replaceconst bundles = await build()withconst { bundles } = await build() - breaking
requirements: Node.js 25 is no longer supported; use
^22.18.0,^24.11.0, or>=26.0.0 - breaking
requirements:
rolldown-plugin-dtsnow requires Rolldown 1.2.x - breaking
requirements: Legacy
typesandtypesVersionsfallbacks were removed; use TypeScript'sbundler,node16, ornodenextmodule resolution
Breaking Changes
- breaking
Drop support for Node.js 25
- breaking
Remove deprecated tsup compatibility options
- breaking
Drop
typesandtypesVersionsfields - breaking
attw: Change default profile to
esm-only - breaking
deps: Remove deprecated
deps.onlyAllowBundle - breaking
deps: Disable
resolveDepSubpathby default - breaking
deps: Remove deprecated
skipNodeModulesBundle - breaking
dts: Remove dts.cjsReexport option
- breaking
0.22.14
23 July 2026Add CLI build concurrency option
Features
Add CLI build concurrency option
0.22.13
21 July 2026Support neverBundle: true to externalize all dependencies
Features
deps: Support
neverBundle: trueto externalize all dependencies
Bug Fixes
Prevent tinyexec from modifying PATH
0.22.12
19 July 2026exe: Standardize minimum Node.js version
Breaking Changes
- breaking
exe: Standardize minimum Node.js version
- breaking
0.22.11
19 July 2026Add resolveDepSubpath option
Features
deps: Add
resolveDepSubpathoption
0.22.10
19 July 2026exe: Support custom node index and download url
Features
exe: Support custom node index and download url
Bug Fixes
deps: External
peerDependenciesMetadepsexe: Handle Windows node archives on Linux
Quality and security signals
What npm and deps.dev say about the latest release. Signals, not a verdict.
Reading npm and deps.dev…
Registry facts last checked 15 October 2026. Releases and advisories last read 15 October 2026.
Know when your own dependencies move
Inlinr tracks your coding time automatically. Switch dependency tracking on for a project and it reads that repository's manifest to show what is behind and what has been deprecated — off by default, one project at a time.