Interface: Options
Defined in: types.ts:93
Options for tsdown.
Properties
alias?
optional
alias:Record
<string
,string
>
Defined in: types.ts:106
attw?
optional
attw:boolean
|CheckPackageOptions
Defined in: types.ts:279
Run arethetypeswrong
after bundling. Requires @arethetypeswrong/core
to be installed.
Default
false
See
https://github.com/arethetypeswrong/arethetypeswrong.github.io
clean?
optional
clean:boolean
|string
[]
Defined in: types.ts:141
Clean directories before build.
Default to output directory.
Default
true
config?
optional
config:string
|boolean
Defined in: types.ts:224
Config file path
copy?
optional
copy:CopyOptions
|CopyOptionsFn
Defined in: types.ts:322
Copy files to another directory.
Example
[
'src/assets',
{ from: 'src/assets', to: 'dist/assets' },
]
cwd?
optional
cwd:string
Defined in: types.ts:350
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:175
dts?
optional
dts:boolean
|Options
Defined in: types.ts:256
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:98
Defaults to 'src/index.ts'
if it exists.
env?
optional
env:Record
<string
,any
>
Defined in: types.ts:305
Compile-time env variables.
Example
{
"DEBUG": true,
"NODE_ENV": "production"
}
exports?
optional
exports:boolean
|ExportsOptions
Defined in: types.ts:293
[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:99
filter?
optional
filter:string
|RegExp
|string
[]
Defined in: types.ts:360
Filter workspace packages. This option is only available in workspace mode.
fixedExtension?
optional
fixedExtension:boolean
Defined in: types.ts:191
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:129
Default
['es']
fromVite?
optional
fromVite:boolean
|"vitest"
Defined in: types.ts:246
Reuse config from Vite or Vitest (experimental)
Default
false
globalName?
optional
globalName:string
Defined in: types.ts:130
hash?
optional
hash:boolean
Defined in: types.ts:343
If enabled, appends hash to chunk filenames.
Default
true
hooks?
optional
hooks:Partial
<TsdownHooks
> | (hooks
) =>Awaitable
<void
>
Defined in: types.ts:324
ignoreWatch?
optional
ignoreWatch:string
|string
[]
Defined in: types.ts:227
inputOptions?
optional
inputOptions:InputOptions
| (options
,format
) =>Awaitable
<null
|void
|InputOptions
>
Defined in: types.ts:120
loader?
optional
loader:ModuleTypes
Defined in: types.ts:217
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:143
Default
false
name?
optional
name:string
Defined in: types.ts:183
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:100
onSuccess?
optional
onSuccess:string
| (config
,signal
) =>void
|Promise
<void
>
Defined in: types.ts:232
You can specify command to be executed after a successful build, specially useful for Watch mode
outDir?
optional
outDir:string
Defined in: types.ts:132
Default
'dist'
outExtensions?
optional
outExtensions:OutExtensionFactory
Defined in: types.ts:196
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:198
platform?
optional
platform:"browser"
|"node"
|"neutral"
Defined in: types.ts:119
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:207
publicDir?
optional
publicDir:CopyOptions
|CopyOptionsFn
Defined in: types.ts:310
Deprecated
Alias for copy
, will be removed in the future.
publint?
optional
publint:boolean
|Options
Defined in: types.ts:270
Run publint after bundling. Requires publint
to be installed.
Default
false
removeNodeProtocol?
optional
removeNodeProtocol:boolean
Defined in: types.ts:337
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:285
Enable size reporting after bundling.
Default
true
shims?
optional
shims:boolean
Defined in: types.ts:177
Default
false
silent?
optional
silent:boolean
Defined in: types.ts:220
Default
false
skipNodeModulesBundle?
optional
skipNodeModulesBundle:boolean
Defined in: types.ts:240
Skip bundling node_modules
.
Default
false
sourcemap?
optional
sourcemap:Sourcemap
Defined in: types.ts:134
Default
false
target?
optional
target:string
|false
|string
[]
Defined in: types.ts:166
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:206
Default
true
tsconfig?
optional
tsconfig:string
|boolean
Defined in: types.ts:107
unbundle?
optional
unbundle:boolean
Defined in: types.ts:173
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:263
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:226
Default
false
workspace?
optional
workspace:true
|Workspace
|Arrayable
<string
>
Defined in: types.ts:356
[experimental] Enable workspace mode. This allows you to build multiple packages in a monorepo.