Existe-t-il un moyen de désinstaller simplement toutes les dépendances inutilisées (non déclarées) d'un projet Node.js (celles qui ne sont plus définies dans mon package.json
.). Lorsque je mets à jour mon application, je souhaite que les packages non référencés soient automatiquement supprimés.
Exécutez npm Prune
pour supprimer les modules non répertoriés dans _package.json
_.
De _npm help Prune
_:
Cette commande supprime les packages "superflus". Si un nom de package est fourni, seuls les packages correspondant à l'un des noms fournis sont supprimés.
Les packages superflus sont des packages qui ne figurent pas dans la liste des dépendances du package parent.
Si l'indicateur _
--production
_ est spécifié, cette commande supprimera les packages spécifiés dans votre devDependencies.
Si vous n'êtes pas inquiet après quelques minutes, la solution serait de rm -rf node_modules
et npm install
pour reconstruire les modules locaux.
npm Prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Cette commande supprime les packages "superflus". Si un nom de package est fourni, seuls les packages correspondant à l'un des noms fournis sont supprimés.
Les packages superflus sont des packages qui ne figurent pas dans la liste des dépendances du package parent.
Si l'indicateur - production est spécifié ou si la variable d'environnement NODE_ENV est définie sur production, cette commande supprimera les packages spécifiés dans votre - devDependencies. Le réglage - no-production annulera NODE_ENV étant défini sur production.
Si le drapeau - dry-run est utilisé, aucun changement ne sera réellement effectué.
Si le drapeau - json est utilisé, les modifications npm Prune effectuées (ou l'auraient été avec - dry-run) sont imprimées comme suit: un objet JSON.
En fonctionnement normal avec les verrous de paquet activés, les modules superflus sont automatiquement supprimés lors de l'installation des modules et vous n'aurez besoin de cette commande qu'avec l'indicateur - production.
Si vous avez désactivé les verrous de paquets, les modules superflus ne seront pas supprimés et vous devrez exécuter npm Prune de temps à autre pour les supprimer.
npm dedupe
npm ddp
Recherche dans l'arborescence locale des packages et tente de simplifier la structure globale en déplaçant les dépendances plus haut dans l'arborescence, où elles peuvent être partagées plus efficacement par plusieurs packages dépendants.
Par exemple, considérons ce graphe de dépendance:
a
+-- b <-- depends on [email protected]
| `-- [email protected]
`-- d <-- depends on c@~1.0.9
`-- [email protected]
Dans ce cas, npm-dedupe transformera l’arbre en:
a
+-- b
+-- d
`-- [email protected]
En raison de la nature hiérarchique de la recherche de module du noeud, b et d obtiendront tous les deux leur dépendance par le seul package c au niveau racine de l'arborescence.
L'algorithme de déduplication parcourt l'arborescence, en déplaçant chaque dépendance aussi haut que possible dans l'arborescence, même si des doublons ne sont pas trouvés. Cela se traduira par une arborescence plate et dédupliquée.