Référence

Erreurs de build et comment les corriger

Voici les échecs que React2Static reconnaît tout seul quand un build casse. Chaque entrée ci-dessous reprend la sortie réelle de npm, Vite ou tsc, pour que vous puissiez chercher la ligne que vous avez obtenue — ou déposez votre projet dans le builder, il vous dira lequel vous avez rencontré.

Les noms de paquets, chemins et tailles des exemples ci-dessous ne sont que des exemples — le builder y met ceux de votre propre projet.

Impossible de résoudre react-router-dom

Ce que vous voyez

error during build:
[vite]: Rollup failed to resolve import "react-router-dom" from "/home/project/src/App.tsx".
This is most likely unintended because it can break your application at runtime.

Le code importe react-router-dom, mais il n'apparaît pas dans package.json : il n'a donc jamais été installé. Ajoutez-le aux dependencies, ou supprimez l'import. C'est l'échec le plus fréquent des projets générés par IA — sur la machine qui a écrit le code, le paquet est déjà présent.

La correction

npm install react-router-dom

package.json n'a pas de script build

Ce que vous voyez

npm error Missing script: "build"
npm error
npm error To see a list of scripts, run:
npm error   npm run

Nous exécutons npm run build, et il n'y a rien à exécuter. Ajoutez un script build — pour un projet Vite, c'est "build": "vite build".

La correction

{
  "scripts": {
    "build": "vite build"
  }
}

TypeScript a rejeté le code

Ce que vous voyez

src/components/PostCard.tsx:12:23 - error TS2339: Property 'title' does not exist on type 'Post'.

12   <h2>{post.title}</h2>
                 ~~~~~

Le script de build lance tsc avant le bundler et la vérification de types a échoué. Corrigez le fichier indiqué dans le journal, ou limitez le script au bundler : "vite build" au lieu de "tsc && vite build".

La correction

{
  "scripts": {
    "build": "vite build"
  }
}

vite n'est pas installé

Ce que vous voyez

> [email protected] build
> vite build

sh: 1: vite: not found

Le script de build appelle vite, mais il ne figure pas dans package.json : il n'a donc jamais été installé. Ajoutez-le aux devDependencies.

La correction

npm install -D vite

Conflit de versions entre dépendances

Ce que vous voyez

npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: [email protected]
npm error Found: [email protected]

Deux paquets exigent des versions incompatibles de la même dépendance. Nous avons déjà réessayé l'installation avec --legacy-peer-deps sans succès : il faut aligner les versions à la main dans package.json.

Le paquet @shadcn/ui-toast n'existe pas

Ce que vous voyez

npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@shadcn%2fui-toast
npm error 404 '@shadcn/ui-toast@^1.0.0' is not in this registry.

npm ne le trouve pas dans le registre. Les outils d'IA inventent parfois des noms de paquets, et les paquets privés ne sont pas accessibles ici. Vérifiez l'orthographe dans package.json, ou supprimez la dépendance si rien ne l'importe.

Aucune version publiée ne correspond à react@^19.9.0

Ce que vous voyez

npm error code ETARGET
npm error notarget No matching version found for react@^19.9.0.

Le paquet existe, mais pas cette plage de versions. Assouplissez la contrainte dans package.json ou fixez-la sur une version réellement publiée.

La compilation n'a produit aucun dossier de sortie

Ce que vous voyez

vite v5.4.10 building for production...
✓ 41 modules transformed.
✓ built in 1.24s

La compilation s'est terminée sans erreur, mais il n'y a rien à récupérer. Nous cherchons dans dist/, build/ et out/ — vérifiez le dossier de sortie de votre configuration.

Next.js n'a pas produit de fichiers statiques

Ce que vous voyez

▲ Next.js 14.2.5

✓ Compiled successfully
✓ Generating static pages (5/5)

Route (app)                    Size     First Load JS

Par défaut, next build produit une application serveur dans .next/. Ajoutez output: "export" à next.config.js et recompilez : les fichiers statiques iront dans out/, que nous savons récupérer. Les fonctionnalités serveur (routes API, server actions, optimisation d'images) ne survivent pas à l'export.

La correction

// next.config.js
module.exports = {
  output: 'export',
}

La compilation a manqué de mémoire

Ce que vous voyez

<--- Last few GCs --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

Une compilation dans le navigateur dispose d'une mémoire limitée, et ce projet la dépasse. Retirer les dépendances inutilisées et les fichiers trop lourds suffit souvent ; sinon, ce projet doit être compilé sur votre propre machine.

Ceci semble faire partie d'un monorepo

Ce que vous voyez

npm error code EUNSUPPORTEDPROTOCOL
npm error Unsupported URL Type "workspace:": workspace:*

package.json utilise des dépendances workspace:, qui ne se résolvent qu'à l'intérieur du dépôt complet. Envoyez uniquement l'application, avec de vrais numéros de version à la place des références workspace:.

Le projet demande une autre version de Node

Ce que vous voyez

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '[email protected]',
npm warn EBADENGINE   required: { node: '>=22.0.0' },
npm warn EBADENGINE   current: { node: 'v20.11.1' }
npm warn EBADENGINE }

Une dépendance déclare une version de Node que cet environnement ne fournit pas. Assouplissez le champ engines, ou passez à une version du paquet compatible avec le Node actuel.

Le registre npm est injoignable

Ce que vous voyez

npm error code EAI_AGAIN
npm error network request to https://registry.npmjs.org/react failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

Le téléchargement s'est interrompu en cours de route. C'est généralement temporaire : relancez la compilation. Là où registry.npmjs.org est bloqué, un VPN est nécessaire.

Laissez-le trouver les vôtres

Déposez votre ZIP dans le builder. Il exécute le vrai build dans votre navigateur, et quand quelque chose casse il pointe la ligne qui compte au lieu de vous tendre tout le journal.

Ouvrir l'atelier

À voir aussi

Que vérifier avant de mettre un site statique en ligneLes 15 points que React2Static vérifie dans votre build avant le déploiement : clés exposées, appels d'API morts, balises meta manquantes — et comment corriger chacun.