npx, ça sert à quoi exactement ?
Quand on touche à l’écosystème Node.js, on voit souvent passer des commandes du genre :
npx create-next-app
ou
npx astro add tailwind
Si tu débutes, ça peut être un peu flou. On pourrait se dire : pourquoi npx ? Pourquoi pas juste npm ?
Et si tu vois aussi passer pnpm partout dans les projets récents, j’ai un article séparé sur ce que pnpm change concrètement.
La réponse courte : npx sert à exécuter un outil Node.js sans devoir l’installer globalement à la main.
La différence simple entre npm et npx
npmsert surtout à installer et gérer des paquetsnpxsert à exécuter un paquet, en particulier un CLI
Exemple :
npm install -g create-next-app
ça installe l’outil globalement sur ta machine.
Alors que :
npx create-next-app
lance directement l’outil sans te forcer à le garder installé globalement.
Pourquoi c’est pratique ?
Parce que ça évite de transformer ta machine en décharge à CLI.
Si tu installes tout en global :
- tu accumules des outils que tu n’utilises qu’une fois
- tu peux te retrouver avec de vieilles versions qui traînent
- tu perds vite en lisibilité sur ce qui est réellement nécessaire à ton projet
Avec npx, tu peux lancer un outil ponctuel, faire le job, puis passer à autre chose.
C’est particulièrement utile pour :
- créer un nouveau projet
- lancer un générateur de code
- utiliser un utilitaire occasionnel
- tester rapidement un CLI
Ce que fait vraiment npx
En pratique, npx va chercher le binaire à exécuter :
- d’abord dans les dépendances locales du projet si l’outil y est déjà installé
- sinon, il peut le récupérer à la volée depuis le registre npm
- puis il l’exécute
Ça veut dire qu’une commande comme :
npx eslint .
peut utiliser l’instance locale de eslint du projet, ce qui est en général une bonne chose.
Pourquoi ? Parce que toute l’équipe utilise alors la même version de l’outil, au lieu de dépendre d’un truc global installé différemment sur chaque machine.
Le cas le plus courant : lancer un starter
Le cas d’usage classique, c’est le bootstrap d’un projet.
Exemples :
npx create-next-app@latest
npx create-vite@latest
npx astro@latest
L’idée est simple :
- tu veux exécuter l’outil maintenant
- tu n’en as peut-être rien à foutre après
- donc inutile de l’installer globalement
C’est propre, rapide et ça limite le bordel.
Quand il vaut mieux éviter npx
npx est pratique, mais ce n’est pas magique.
Il y a des cas où ce n’est pas le meilleur choix.
1. Pour un outil utilisé tout le temps dans un projet
Si un outil fait partie du projet, mieux vaut souvent l’installer en dépendance locale.
Exemple :
npm install -D eslint
puis :
npx eslint .
Là, npx sert juste de lanceur pour un outil déjà présent dans le projet. C’est très bien.
2. Pour un outil sensible ou inconnu
Lancer à la volée un paquet trouvé sur npm, ce n’est pas un geste anodin.
Si tu fais :
npx un-truc-random-trouvé-sur-internet
tu es littéralement en train d’exécuter du code tiers sur ta machine.
Donc règle simple :
- si c’est un outil connu et standard, pas de souci particulier
- si c’est un paquet obscur avec 12 téléchargements, réfléchis deux secondes avant de lui ouvrir la porte
npx ne remplace pas npm
C’est un point important.
npx n’est pas une version “plus moderne” de npm. Ce n’est pas non plus un concurrent.
Les deux n’ont juste pas le même rôle :
npmgère les paquetsnpxexécute des commandes liées à ces paquets
Tu peux voir npx comme un raccourci pratique pour lancer un binaire Node sans t’embarrasser d’une installation globale.
Le piège classique
Beaucoup de gens confondent :
npm astro
et
npx astro
La première n’a pas de sens dans ce contexte.
La deuxième oui, parce qu’on demande à exécuter le CLI astro.
C’est pour ça que npx revient souvent dans les docs d’installation rapide.
La version courte
Si je résume brutalement :
npminstallenpxexécutenpxest très utile pour les commandes ponctuelles et les starters- c’est aussi pratique pour lancer les outils locaux d’un projet
- mais il ne faut pas exécuter n’importe quel paquet au hasard comme un bourrin
Bref : npx, c’est le moyen propre de lancer un outil Node sans pourrir ton système avec des installations globales inutiles.
Et si tu veux voir comment ce genre d’outils s’intègre dans une stack web simple à lancer aujourd’hui, j’en parle dans cet article sur la stack que je recommande en 2026.
~Thomas Germain