Comment ne pas exécuter les scripts tiers avec npm, pnpm et yarn

NicolasBrondinBernard

Auteur
@NicolasBrondinBernard

Découvrez comment utiliser npm install --ignore-scripts pour empêcher l’exécution de scripts dangereux ou inutiles lors de l’installation des dépendances npm.

Article publié le 17/03/2026, dernière mise à jour le 17/03/2026

Quand vous installez un projet Node.js, il y a un réflexe très courant :

npm install

Cette commande semble anodine. Elle télécharge simplement les dépendances listées dans le package.json.

Mais en réalité, npm peut aussi exécuter du code pendant l’installation.

Beaucoup de développeurs l’ignorent, mais certains packages contiennent des scripts qui s’exécutent automatiquement lors de l’installation. Et dans certains cas, ces scripts peuvent poser problème : comportements inattendus, téléchargements lourds… ou pire, scripts malveillants.

Heureusement, npm propose une option simple pour éviter cela :

npm install --ignore-scripts

Cette option empêche npm d’exécuter les scripts définis dans les dépendances.

Les scripts exécutés automatiquement par npm

Dans un package.json, un package peut définir plusieurs scripts.

Par exemple :

{
  "scripts": {
    "postinstall": "node build.js"
  }
}

npm peut exécuter automatiquement certains scripts pendant l’installation.

Les plus courants sont :

  • preinstall
  • install
  • postinstall
  • prepare

Ces scripts sont souvent utilisés pour compiler du code natif, télécharger des binaires, générer des fichiers nécessaires au package, préparer des assets, etc…

Le problème, c’est que npm exécute ces scripts automatiquement, sans vous demander votre avis.

Le risque : exécuter du code sans le savoir

L’écosystème npm est immense. On compte aujourd’hui plus de deux millions de packages.

Et comme dans tout écosystème ouvert, il arrive que certains packages soient malveillants ou compromis.

Plusieurs incidents ont déjà eu lieu :

  • des packages abandonnés repris par des acteurs malveillants
  • des dépendances injectant du code espion
  • des scripts envoyant des informations système

Les scripts postinstall sont particulièrement sensibles, car ils s’exécutent directement sur votre machine au moment de l’installation.

Concrètement, un script npm peut :

  • accéder à votre système de fichiers
  • lire des variables d’environnement
  • envoyer des données vers Internet
  • modifier votre configuration

En d’autres termes : un simple npm install peut exécuter du code arbitraire.

Utiliser ignore-scripts pour garder le contrôle

Pour éviter cela, npm propose une option très simple :

npm install --ignore-scripts

Avec cette commande :

  • npm télécharge les dépendances
  • npm les installe dans node_modules
  • mais aucun script n’est exécuté

Cela bloque :

  • preinstall
  • install
  • postinstall
  • prepare

Les packages sont installés sans exécution de code externe.

⚠️ Attention : --ignore-scripts bloque absolument tous les scripts.

Il n’est pas possible de désactiver uniquement postinstall ou un script spécifique.

Si vous utilisez cette option, aucun script lifecycle ne sera exécuté, quel que soit le package.

Cette option est particulièrement utile dans plusieurs situations :

  • audit de dépendances
  • analyse d’un projet inconnu
  • environnement sécurisé
  • pipeline CI/CD
  • installation de dépendances non fiables

Équivalent avec pnpm et yarn

Si vous utilisez un autre gestionnaire de paquets, sachez que des options similaires existent.

pnpm

pnpm propose exactement la même option :

pnpm install --ignore-scripts

Le comportement est identique à npm : les dépendances sont installées mais aucun script lifecycle n’est exécuté.

Yarn

Avec Yarn (v1 ou v3), l’option est également disponible :

yarn install --ignore-scripts

Comme pour npm et pnpm, cela bloque l’exécution des scripts preinstall, install et postinstall.

Autrement dit, les trois principaux gestionnaires de paquets Node.js offrent ce mécanisme de sécurité.

Réactiver les scripts si nécessaire

Si un package a réellement besoin de ses scripts pour fonctionner, vous pouvez les relancer plus tard.

Par exemple :

npm rebuild

Ou simplement relancer l’installation normalement :

npm install

L’avantage est que vous gardez le contrôle sur ce qui s’exécute sur votre machine.

Dans un écosystème aussi vaste que npm, cette petite option peut éviter de nombreux problèmes.


Vous avez terminé l'article ?
Notre newsletter

Pas de spam. Uniquement du contenu gratuit, des news et toujours plus de ressources pour monter en compétences !

Rejoignez +1500 développeurs

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant

Questions fréquentes abordées dans l'article

npm ignore scripts pnpm ignore scripts yarn ignore scripts npm sans postinstall