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:261
Run arethetypeswrong
after bundling. Requires @arethetypeswrong/core
to be installed.
Default
false
See
https://github.com/arethetypeswrong/arethetypeswrong.github.io
bundle?
optional
bundle:boolean
Defined in: types.ts:155
Deprecated
Use unbundle
instead.
Default
true
clean?
optional
clean:boolean
|string
[]
Defined in: types.ts:117
Clean directories before build.
Default to output directory.
Default
true
config?
optional
config:string
|boolean
Defined in: types.ts:206
Config file path
copy?
optional
copy:CopyOptions
|CopyOptionsFn
Defined in: types.ts:304
Copy files to another directory.
Example
[
'src/assets',
{ from: 'src/assets', to: 'dist/assets' },
]
cwd?
optional
cwd:string
Defined in: types.ts:332
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:157
dts?
optional
dts:boolean
|Options
Defined in: types.ts:238
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:287
Compile-time env variables.
Example
{
"DEBUG": true,
"NODE_ENV": "production"
}
exports?
optional
exports:boolean
|ExportsOptions
Defined in: types.ts:275
[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:342
Filter workspace packages. This option is only available in workspace mode.
fixedExtension?
optional
fixedExtension:boolean
Defined in: types.ts:173
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
format?
Defined in: types.ts:105
Default
['es']
fromVite?
optional
fromVite:boolean
|"vitest"
Defined in: types.ts:228
Reuse config from Vite or Vitest (experimental)
Default
false
globalName?
optional
globalName:string
Defined in: types.ts:106
hash?
optional
hash:boolean
Defined in: types.ts:325
If enabled, appends hash to chunk filenames.
Default
true
hooks?
optional
hooks:Partial
<TsdownHooks
> | (hooks
) =>Awaitable
<void
>
Defined in: types.ts:306
ignoreWatch?
optional
ignoreWatch:string
|string
[]
Defined in: types.ts:209
inputOptions?
optional
inputOptions:InputOptions
| (options
,format
) =>Awaitable
<null
|void
|InputOptions
>
Defined in: types.ts:96
loader?
optional
loader:ModuleTypes
Defined in: types.ts:199
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:119
Default
false
name?
optional
name:string
Defined in: types.ts:165
The name to show in CLI output. This is useful for monorepos or workspaces. Defaults to the package name from package.json
.
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:214
You can specify command to be executed after a successful build, specially useful for Watch mode
outDir?
optional
outDir:string
Defined in: types.ts:108
Default
'dist'
outExtensions?
optional
outExtensions:OutExtensionFactory
Defined in: types.ts:178
Custom extensions for output files. fixedExtension
will be overridden by this option.
outputOptions?
optional
outputOptions:OutputOptions
| (options
,format
) =>Awaitable
<null
|void
|OutputOptions
>
Defined in: types.ts:180
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:189
publicDir?
optional
publicDir:CopyOptions
|CopyOptionsFn
Defined in: types.ts:292
Deprecated
Alias for copy
, will be removed in the future.
publint?
optional
publint:boolean
|Options
Defined in: types.ts:252
Run publint after bundling. Requires publint
to be installed.
Default
false
removeNodeProtocol?
optional
removeNodeProtocol:boolean
Defined in: types.ts:319
If enabled, strips the node:
protocol prefix from import source.
Default
false
Example
// With removeNodeProtocol enabled:
import('node:fs'); // becomes import('fs')
report?
optional
report:boolean
|ReportOptions
Defined in: types.ts:267
Enable size reporting after bundling.
Default
true
shims?
optional
shims:boolean
Defined in: types.ts:159
Default
false
silent?
optional
silent:boolean
Defined in: types.ts:202
Default
false
skipNodeModulesBundle?
optional
skipNodeModulesBundle:boolean
Defined in: types.ts:222
Skip bundling node_modules
.
Default
false
sourcemap?
optional
sourcemap:Sourcemap
Defined in: types.ts:110
Default
false
target?
optional
target:string
|false
|string
[]
Defined in: types.ts:142
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:188
Default
true
tsconfig?
optional
tsconfig:string
|boolean
Defined in: types.ts:83
unbundle?
optional
unbundle:boolean
Defined in: types.ts:149
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:245
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:208
Default
false
workspace?
optional
workspace:true
|Workspace
|Arrayable
<string
>
Defined in: types.ts:338
[experimental] Enable workspace mode. This allows you to build multiple packages in a monorepo.