---
title: "Référence d'API — nodefony/bundler"
source: docs/api/core/bundler.md
url: https://nodefony.github.io/nodefony-core/docs/api/core/bundler/
---


[Documentation](../../../) › [Référence d'API](../../) › [`nodefony`](../) › bundler

> Générée depuis les déclarations de types publiées de `nodefony` **10.0.0-beta.5** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `nodefony/bundler`

`import { … } from "nodefony/bundler"` — 5 symboles.

### Fonctions (3)

#### `defineNodefonyRolldownConfig`

```ts
function defineNodefonyRolldownConfig(opts?: INodefonyRolldownOptions): RolldownOptions
```

Config rolldown partagée d'un package ou d'une application Nodefony (bundle node ESM, `preserveModules`).

#### `nodefonyExternalMatcher`

```ts
function nodefonyExternalMatcher(external: string[]): (id: string) => boolean
```

Matcher `external` des packages Nodefony : exact-match ou préfixe `<nom>/`, SAUF pour `nodefony` (exact-match seulement — cf invariant en tête de fichier).

#### `nodefonyInput`

```ts
function nodefonyInput(globPatterns?: string[], deps?: { readonly glob?: (pattern: string) => string[]; readonly sep?: string; }): Record<string, string>
```

Construit la map d'entrées d'un package Nodefony : `index.ts` + toutes les sources `nodefony/**` (hors tests et `.d.ts`), nommées par chemin relatif — la sortie `preserveModules` reproduit l'arborescence source dans `dist/`.

### Constantes (1)

#### `nodefonyTreeshake`

```ts
const nodefonyTreeshake: { moduleSideEffects: (id: string, isExternal: boolean) => boolean; }
```

Treeshake commun : les externes sont sans effet de bord (équivalent `no-external`) SAUF `reflect-metadata`, dont le side-effect doit survivre.

### Interfaces (1)

#### `INodefonyRolldownOptions`

```ts
interface INodefonyRolldownOptions
```

- `external?: string[]` — Liste `external` du package (deps runtime non bundlées).
- `externalDeps?: boolean` — Externalise automatiquement toutes les `dependencies` + `peerDependencies` du `package.json` courant (défaut `false`).
- `input?: Record<string, string>` — Entrées explicites — remplace le glob par défaut (`index.ts` + `nodefony/**∕*.ts`).
- `globPatterns?: string[]` — Patterns glob des sources à préserver en modules (défaut `["nodefony/**∕*.ts"]`).
- `sourcemap?: boolean` — Sourcemaps de sortie (défaut `false`).
- `plugins?: RolldownPluginOption[]` — Plugins additionnels (ex : `browserShim` du core).
- `platform?: "node" | "browser" | "neutral"` — Cible de résolution des builtins (défaut `"node"`).
- `preserveModulesRoot?: string` — Racine `preserveModulesRoot` (défaut `"."` — chemins relatifs au package).
- `outDir?: string` — Dossier de sortie (défaut `"dist"`).
- `cleanDir?: boolean` — Vide `outDir` juste AVANT l'émission (défaut `false`) — et non avant la compilation comme un `rimraf dist && …` : le dossier ne reste vide que le temps de l'écriture, pas celui du build entier.

---

[← Toutes les références d'API](../../)
