---
url: /reference/api/Interface.DepsConfig.md
---
# Interface: DepsConfig

Defined in: [src/features/deps.ts:40](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L40)

## Properties

### alwaysBundle?

```ts
optional alwaysBundle?:
  | Arrayable<string | RegExp>
  | NoExternalFn;
```

Defined in: [src/features/deps.ts:59](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L59)

Force dependencies to be bundled, even if they are in `dependencies`, `peerDependencies`, or `optionalDependencies`.

***

### dts?

```ts
optional dts?: Pick<DepsConfig, "alwaysBundle" | "neverBundle">;
```

Defined in: [src/features/deps.ts:93](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L93)

Override dependency bundling options for declaration file generation.

***

### neverBundle?

```ts
optional neverBundle?:
  | true
  | string | RegExp | (string | RegExp)[] | ExternalOptionFunction;
```

Defined in: [src/features/deps.ts:55](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L55)

Mark dependencies as external (not bundled).
Accepts strings, regular expressions, or Rolldown's
`ExternalOption`.

Set to `true` to externalize **all** dependencies: every import that
follows npm package naming conventions is marked as external as written,
without resolving it. Other non-relative imports (e.g. `#` subpath
imports and path aliases like `~/`) are resolved, and kept external
only if they resolve into `node_modules`; otherwise the resolved local
file is bundled.

Use [`alwaysBundle`](#alwaysbundle) to opt specific imports back into the bundle.

***

### onlyBundle?

```ts
optional onlyBundle?: false | Arrayable<string | RegExp>;
```

Defined in: [src/features/deps.ts:70](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L70)

Whitelist of dependencies allowed to be bundled from `node_modules`.
Throws an error if any unlisted dependency is bundled.

* `undefined` (default): Log an info-level hint if any `node_modules`
  dependencies are bundled.
* `false`: Disable the hint and all checks about bundled dependencies.

Note: Be sure to include all required sub-dependencies as well.

***

### onlyImport?

```ts
optional onlyImport?: Arrayable<string | RegExp>;
```

Defined in: [src/features/deps.ts:81](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L81)

Whitelist of packages that the emitted output is allowed to import.
Matched against the package name, so subpath imports (e.g. `cac/deno`)
are covered by listing the package (e.g. `cac`).
Node built-in modules are always allowed to be imported
when `platform` is `node`.

Note: ES imports and dynamic import expressions are checked. CJS
`require` calls are not detected.

***

### resolveDepSubpath?

```ts
optional resolveDepSubpath?: boolean;
```

Defined in: [src/features/deps.ts:88](https://github.com/rolldown/tsdown/blob/eb40c95efdf7f98d0aa7b0178a3b7322986bd419/src/features/deps.ts#L88)

Resolve dependency subpath imports to their actual package-relative paths
when externalizing packages without an `exports` field.

#### Default

```ts
false
```
