Pourquoi npm run build échoue sur Ubuntu avec Node.js ?

En bref : `npm run build` échoue avec une pile d'erreurs de dépendances — pas un bug d'Hermes Agent, une incompatibilité de version de Node.js. Sous Node 18 et Node 20 (la version LTS par défaut de la plupart des images WSL2 récentes), le build échoue systématiquement ; sous Node 22, il réussit en 52 secondes, sans autre changement. Sur Ubuntu 20.04, c'est pire : `apt install nodejs` installe encore Node 10.x.

Le symptôme est toujours le même : `npm install` passe sans erreur, puis `npm run build` s'arrête avec une pile de messages qui parlent de dépendances attendant une API plus récente. Rien d'exotique — ce n'est pas une installation cassée, c'est une incompatibilité de version de Node.js.

Nous avons reproduit l'erreur, changé uniquement la version de Node, et relancé : échec systématique sous Node 18 et sous Node 20 (la version LTS installée par défaut sur la plupart des images WSL2 récentes), succès immédiat sous Node 22 — 52 secondes de build, aucune autre modification.

Sur Ubuntu 20.04 spécifiquement, le point de départ est encore plus loin du compte : `apt install nodejs` installe Node 10.x, une version que le dépôt Ubuntu officiel n'a jamais mise à jour au rythme des versions de Node — largement insuffisante pour la plupart des projets JavaScript actuels, pas seulement pour Hermes Agent.

Avec `nvm` déjà installé, le changement de version prend dix secondes :

``` nvm install 22 nvm use 22 npm run build ```

Sans `nvm`, comptez plutôt quinze minutes pour installer proprement une version récente de Node sur Ubuntu, le temps de configurer le dépôt NodeSource :

``` curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs node -v ```

Si vous ne voulez plus gérer le serveur ni ses mises à jour, [on l'héberge pour vous](https://hermesagentfrance.com/hermes-heberge) : vous gardez votre propre clé API, 12 €/mois, rien d'autre à configurer.

→ Voir les 6 pièges qui font perdre une demi-journée