Créer des exécutables avec Node 25+
NicolasBrondinBernard
Découvrez la nouvelle fonctionnalité de Node.js qui permet de créer des exécutables directement, sans utiliser de modules externes comme pkg ou nexe.

Article publié le 10/07/2026, dernière mise à jour le 10/07/2026
Pendant longtemps, créer un exécutable à partir d'une application Node.js nécessitait un outil externe. Les plus connus étaient pkg ou nexe, capables de transformer une application JavaScript en un fichier .exe sous Windows, ou en un binaire exécutable sous Linux et macOS.
L'objectif était simple : distribuer une application sans demander à l'utilisateur d'installer Node.js.
Depuis sa version 18.16 (LTS), Node.js propose les Single Executable Applications (SEA), un mécanisme permettant d'intégrer une application directement dans un exécutable Node.
Cette fonctionnalité a récemment franchi une nouvelle étape (depuis la 25.5) avec l'arrivée de la commande --build-sea, qui permet de générer un exécutable directement depuis la ligne de commande, sans passer par des outils externes.
Autrement dit : Node.js sait désormais produire lui-même un exécutable.
Comment faire
Il suffit de fournir un fichier de configuration JSON (ici sea-config.json) décrivant votre application.
Par exemple :
{
"main": "./dist/index.js",
"output": "./mon-application"
}
Puis de lancer :
node --build-sea sea-config.json
Node.js génère alors un exécutable contenant à la fois le runtime et votre application.
Pourquoi est-ce une bonne nouvelle ?
Le principal avantage est la simplicité. Jusqu'à présent, il fallait souvent installer un outil supplémentaire, vérifier sa compatibilité avec votre version de Node.js et espérer qu'il continue d'être maintenu.
Avec une solution officielle, tout cela disparaît.
Vous bénéficiez d'une fonctionnalité développée directement par l'équipe Node.js, qui évoluera en même temps que le runtime.
Une fonctionnalité encore jeune
Il faut cependant garder une chose en tête : Même si cette fonctionnalité devient de plus en plus mature, elle reste marquée comme en développement actif dans la documentation officielle de Node.js.
Certaines limitations existent encore.
Par exemple, les premières versions de SEA ne supportaient que les applications CommonJS. Les versions récentes prennent désormais également en charge les modules ECMAScript (ESM), mais toutes les fonctionnalités d'un projet Node ne sont pas forcément compatibles selon votre configuration.
Si votre application dépend d'outils comme Puppeteer, de modules natifs ou de ressources externes, quelques ajustements peuvent encore être nécessaires.
Faut-il abandonner pkg ?
Pour un nouveau projet, la réponse est probablement oui.
La fonctionnalité native de Node.js a vocation à remplacer progressivement les outils historiques de packaging. Elle est mieux intégrée au runtime et ne dépend plus d'un projet tiers qui pourrait cesser d'être maintenu.
En revanche, si vous possédez déjà une chaîne de build basée sur
pkget qu'elle fonctionne parfaitement, il n'y a pas forcément d'urgence à la modifier.
À noter
Node ne "compile" pas votre code JavaScript vers du code machine. Il embarque votre application dans un exécutable Node existant, qui est lui-même spécifique à un système d'exploitation et à une architecture (Windows, Linux, macOS, x64, ARM64, etc.).
Pas de spam. Uniquement du contenu gratuit, des news et toujours plus de ressources pour monter en compétences !
Rejoignez +1500 développeurs
Aucun commentaire pour l'instant