v0.21.0-beta.3 - Notable Changes
Breaking Changes
Dependency options renamed to deps namespace
The dependency-related options have been moved under a new deps namespace with clearer names:
external->deps.neverBundlenoExternal->deps.alwaysBundleinlineOnly->deps.onlyAllowBundleskipNodeModulesBundle->deps.skipNodeModulesBundle
Before:
export default defineConfig({
external: ['vue'],
noExternal: ['lodash'],
})After:
export default defineConfig({
deps: {
neverBundle: ['vue'],
alwaysBundle: ['lodash'],
},
})The old options still work but are deprecated and will emit warnings.
failOnWarn default changed from 'ci-only' to false
If you relied on the previous behavior where warnings would fail the build in CI environments, you now need to explicitly set failOnWarn: true or failOnWarn: 'ci-only' in your config.
Node.js < 22.18.0 deprecated
tsdown now emits a deprecation warning when running on Node.js versions below 22.18.0. Plan to upgrade your Node.js version accordingly.
New Features
Experimental Node.js SEA executable bundling (exe)
tsdown can now bundle your TypeScript project into a standalone executable using Node.js Single Executable Applications (SEA). A new @tsdown/exe package provides cross-platform executable building support. See the exe documentation for details.
export default defineConfig({
exe: true, // or { useCodeCache: true, useSnapshot: true }
})Full CSS pipeline as Rolldown plugin
CSS handling has been reimplemented as a native Rolldown plugin, providing a complete CSS pipeline with Lightning CSS integration for transforms, minification, and bundling. See the CSS documentation for details.
inlinedDependencies field in package.json
When using the exports feature, tsdown now auto-generates an inlinedDependencies field in your package.json, listing dependencies that are bundled into the output.
Object option for customExports
customExports now supports an object format for more fine-grained control over the generated exports field.
Migration Guide
- Update dependency options: Rename
external->deps.neverBundle,noExternal->deps.alwaysBundle, etc. - Check
failOnWarn: If you need warnings to fail the build in CI, explicitly setfailOnWarn: 'ci-only'orfailOnWarn: true. - Upgrade Node.js: Ensure you're running Node.js >= 22.18.0 to avoid deprecation warnings.
Links
- tsdown beta Documentation
- v0.21.0-beta.1 Release
- v0.21.0-beta.2 Release
- v0.21.0-beta.3 Release
- Full diff from v0.20.3
🚀 Features
- Upgrade rolldown - by @sxzz (7a528)
- Deprecate Node.js versions below 22.18.0 - by @sxzz (439f1)
- css: Implement full CSS pipeline as Rolldown plugin - by @sxzz in #787 (dbe3c)
- exe: Add cross-platform executable building via
@tsdown/exe- by @sxzz in #786 (b6833) - exports: Add
inlinedDependenciesfield to package.json - by @sxzz in #785 (5c71f)
🐞 Bug Fixes
- Don't fail on PLUGIN_TIMINGS warnings when failOnWarn is enabled - by @sxzz (9872a)
- hooks: Set cwd for onSuccess - by @sxzz (c114a)
- watch: Re-glob entry files on create/delete events - by @sxzz (a1969)