Interface: Options
Defined in: types.ts:69
Options for tsdown.
Properties
alias?
optional
alias:Record
<string
,string
>
Defined in: types.ts:82
attw?
optional
attw:boolean
|AttwOptions
Defined in: types.ts:263
Run arethetypeswrong
after bundling. Requires @arethetypeswrong/core
to be installed.
Default
false
See
https://github.com/arethetypeswrong/arethetypeswrong.github.io
banner?
optional
banner:ChunkAddon
Defined in: types.ts:365
bundle?
optional
bundle:boolean
Defined in: types.ts:156
Deprecated
Use unbundle
instead.
Default
true
clean?
optional
clean:boolean
|string
[]
Defined in: types.ts:118
Clean directories before build.
Default to output directory.
Default
true
config?
optional
config:string
|boolean
Defined in: types.ts:208
Config file path
copy?
optional
copy:CopyOptions
|CopyOptionsFn
Defined in: types.ts:306
Copy files to another directory.
Example
[
'src/assets',
{ from: 'src/assets', to: 'dist/assets' },
]
cwd?
optional
cwd:string
Defined in: types.ts:353
The working directory of the config file.
- Defaults to
process.cwd()
for root config. - Defaults to the package directory for workspace config.
define?
optional
define:Record
<string
,string
>
Defined in: types.ts:158
dts?
optional
dts:boolean
|Options
Defined in: types.ts:240
Emit TypeScript declaration files (.d.ts).
By default, this feature is auto-detected based on the presence of the types
field in the package.json
file.
- If the
types
field is present inpackage.json
, declaration file emission is enabled. - If the
types
field is absent, declaration file emission is disabled by default.
entry?
optional
entry:InputOption
Defined in: types.ts:74
Defaults to 'src/index.ts'
if it exists.
env?
optional
env:Record
<string
,any
>
Defined in: types.ts:289
Compile-time env variables.
Example
{
"DEBUG": true,
"NODE_ENV": "production"
}
exports?
optional
exports:boolean
|ExportsOptions
Defined in: types.ts:277
[experimental] Generate package exports for package.json
.
This will set the main
, module
, types
, exports
fields in package.json
to point to the generated files.
external?
optional
external:ExternalOption
Defined in: types.ts:75
filter?
optional
filter:string
|RegExp
|string
[]
Defined in: types.ts:363
Filter workspace packages. This option is only available in workspace mode.
fixedExtension?
optional
fixedExtension:boolean
Defined in: types.ts:174
Use a fixed extension for output files. The extension will always be .cjs
or .mjs
. Otherwise, it will depend on the package type.
Default
false
footer?
optional
footer:ChunkAddon
Defined in: types.ts:364
format?
optional
format:ModuleFormat
|ModuleFormat
[]
Defined in: types.ts:106
Default
['es']
fromVite?
optional
fromVite:boolean
|"vitest"
Defined in: types.ts:230
Reuse config from Vite or Vitest (experimental)
Default
false
globalName?
optional
globalName:string
Defined in: types.ts:107
hash?
optional
hash:boolean
Defined in: types.ts:346
If enabled, appends hash to chunk filenames.
Default
true
hooks?
optional
hooks:Partial
<TsdownHooks
> | (hooks
) =>Awaitable
<void
>
Defined in: types.ts:308
ignoreWatch?
optional
ignoreWatch:string
|string
[]
Defined in: types.ts:211
inputOptions?
optional
inputOptions:InputOptions
| (options
,format
,context
) =>Awaitable
<null
|void
|InputOptions
>
Defined in: types.ts:96
loader?
optional
loader:ModuleTypes
Defined in: types.ts:201
Sets how input files are processed. For example, use 'js' to treat files as JavaScript or 'base64' for images. Lets you import or require files like images or fonts.
Example
{ '.jpg': 'asset', '.png': 'base64' }
minify?
optional
minify:boolean
|"dce-only"
|BindingMinifyOptions
Defined in: types.ts:120
Default
false
name?
optional
name:string
Defined in: types.ts:166
The name to show in CLI output. This is useful for monorepos or workspaces. Defaults to the package name from package.json
.
nodeProtocol?
optional
nodeProtocol:boolean
|"strip"
Defined in: types.ts:340
- If true, add
node:
prefix to built-in modules. - If 'strip', strips the
node:
protocol prefix from import source. - If false, does not modify the import source.
Default
false
Example
// With nodeProtocol enabled:
import('fs'); // becomes import('node:fs')
// With nodeProtocol set to 'strip':
import('node:fs'); // becomes import('fs')
// With nodeProtocol set to false:
import('node:fs'); // remains import('node:fs')
noExternal?
optional
noExternal:Arrayable
<string
|RegExp
> | (id
,importer
) =>undefined
|null
|boolean
|void
Defined in: types.ts:76
onSuccess?
optional
onSuccess:string
| (config
,signal
) =>void
|Promise
<void
>
Defined in: types.ts:216
You can specify command to be executed after a successful build, specially useful for Watch mode
outDir?
optional
outDir:string
Defined in: types.ts:109
Default
'dist'
outExtensions?
optional
outExtensions:OutExtensionFactory
Defined in: types.ts:179
Custom extensions for output files. fixedExtension
will be overridden by this option.
outputOptions?
optional
outputOptions:OutputOptions
| (options
,format
,context
) =>Awaitable
<null
|void
|OutputOptions
>
Defined in: types.ts:181
platform?
optional
platform:"node"
|"neutral"
|"browser"
Defined in: types.ts:95
Specifies the target runtime platform for the build.
node
: Node.js and compatible runtimes (e.g., Deno, Bun). For CJS format, this is always set tonode
and cannot be changed.neutral
: A platform-agnostic target with no specific runtime assumptions.browser
: Web browsers.
Default
'node'
See
https://tsdown.dev/options/platform
plugins?
optional
plugins:RolldownPluginOption
<any
>
Defined in: types.ts:191
publicDir?
optional
publicDir:CopyOptions
|CopyOptionsFn
Defined in: types.ts:294
Deprecated
Alias for copy
, will be removed in the future.
publint?
optional
publint:boolean
|Options
Defined in: types.ts:254
Run publint after bundling. Requires publint
to be installed.
Default
false
removeNodeProtocol?
optional
removeNodeProtocol:boolean
Defined in: types.ts:322
If enabled, strips the node:
protocol prefix from import source.
Default
false
Deprecated
Use nodeProtocol: 'strip'
instead.
Example
// With removeNodeProtocol enabled:
import('node:fs'); // becomes import('fs')
report?
optional
report:boolean
|ReportOptions
Defined in: types.ts:269
Enable size reporting after bundling.
Default
true
shims?
optional
shims:boolean
Defined in: types.ts:160
Default
false
silent?
optional
silent:boolean
Defined in: types.ts:204
Default
false
skipNodeModulesBundle?
optional
skipNodeModulesBundle:boolean
Defined in: types.ts:224
Skip bundling node_modules
.
Default
false
sourcemap?
optional
sourcemap:Sourcemap
Defined in: types.ts:111
Default
false
target?
optional
target:string
|false
|string
[]
Defined in: types.ts:143
Specifies the compilation target environment(s).
Determines the JavaScript version or runtime(s) for which the code should be compiled. If not set, defaults to the value of engines.node
in your project's package.json
.
Accepts a single target (e.g., 'es2020'
, 'node18'
) or an array of targets.
See
https://tsdown.dev/options/target#supported-targets for a list of valid targets and more details.
Examples
// Target a single environment
{ "target": "node18" }
// Target multiple environments
{ "target": ["node18", "es2020"] }
treeshake?
optional
treeshake:boolean
Defined in: types.ts:190
Default
true
tsconfig?
optional
tsconfig:string
|boolean
Defined in: types.ts:83
unbundle?
optional
unbundle:boolean
Defined in: types.ts:150
Determines whether unbundle mode is enabled. When set to true, the output files will mirror the input file structure.
Default
false
unused?
optional
unused:boolean
|Options
Defined in: types.ts:247
Enable unused dependencies check with unplugin-unused
Requires unplugin-unused
to be installed.
Default
false
watch?
optional
watch:string
|boolean
|string
[]
Defined in: types.ts:210
Default
false
workspace?
optional
workspace:true
|Workspace
|Arrayable
<string
>
Defined in: types.ts:359
[experimental] Enable workspace mode. This allows you to build multiple packages in a monorepo.