Comment nettoyer le dossier node modules des paquets qui ne sont pas dans le paquet.json?

Supposons que j'installe des paquets de projet avec {[0] } qui regarde dans package.json pour les modules à installer. Après un certain temps, je vois que je n'ai pas besoin d'un module spécifique et supprime sa dépendance de package.json. Ensuite, je supprime d'autres modules de package.json car ils ne sont plus nécessaires et d'autres sont remplacés par des alternatives.

Maintenant, je veux nettoyer le dossier node_modules afin que seuls les modules listés dans package.json restent là et le reste doit aller, quelque chose comme npm clean. Je sais que je peux les supprimer manuellement mais je voudrais avoir une belle fonctionnalité de sucre prêt à l'emploi pour cela.

214
demandé sur Sergei Basharov 2014-01-14 23:32:52

8 réponses

Je pense que vous cherchez npm prune

npm prune [<name> [<name ...]]

Cette commande supprime les paquets "étrangers". Si un nom de paquet est fourni, alors seuls les paquets correspondant à l'un des noms fournis sont retiré.

Les paquets étrangers sont des paquets qui ne sont pas liste des dépendances du paquet parent.

Voir les documents: https://docs.npmjs.com/cli/prune

303
répondu David Sherret 2015-02-01 19:53:31

Vous pouvez supprimer votre dossier node_modules/ puis réinstaller les dépendances du package.json.

rm -rf node_modules/
npm install

Cela effacerait tous les paquets installés dans le dossier actuel et installerait uniquement les dépendances du paquet.json. Si les dépendances ont déjà été installées, npm essaiera d'utiliser la version mise en cache, en évitant de télécharger la dépendance une seconde fois.

122
répondu adamduren 2014-01-14 19:43:45

En raison de son imbrication de dossier, Windows ne peut pas supprimer le dossier car son nom est trop long. Pour résoudre ce problème, installez RimRaf:

npm install rimraf -g

rimraf node_modules
78
répondu user3844078 2015-09-10 07:02:28

Première installation globale de rimraf

npm install rimraf -g

Allez dans le chemin en utilisant cmd où votre dossier node_modules et appliquez la commande ci-dessous

rimraf node_modules
10
répondu Ankit Parmar 2017-07-23 20:40:24

Avez-vous essayé de mnp tailler?

Il devrait désinstaller tout ce qui n'est pas répertorié dans votre fichier de package

Https://npmjs.org/doc/cli/npm-prune.html

9
répondu Christoffer Bo Petersen 2014-01-14 19:50:52

Simple il suffit d'exécuter

rm -r node_modules

En fait, vous pouvez supprimer n'importe quel dossier avec cette.

Comme rm-r AnyFolderWhichIsNotDeletableFromshiftdeleteordelete .

Il suffit d'ouvrir le gitbash déplacer à la racine du dossier et exécutez cette commande

J'espère que cela aidera.

9
répondu Ajay Kotnala 2017-03-16 10:19:07

Pour L'utilisateur Windows, solution alternative pour supprimer ce dossier répertorié ici: http://ask.osify.com/qa/567

Parmi eux, un outil gratuit: Long Chemin Fixateur est bon d'essayer: http://corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php

2
répondu Osify 2016-10-12 04:57:19

Utilisez la commande suivante au lieu de npm install

npm ci
-1
répondu Jasmin Mistry 2018-03-22 09:42:20