web-dev-qa-db-fra.com

Comment nettoyer le dossier node_modules des paquets qui ne sont pas dans package.json?

Supposons que j'installe les packages de projet avec npm install, qui examine package.json pour les modules à installer. Au bout d'un moment, je constate que je n'ai pas besoin d'un module spécifique et supprime sa dépendance de package.json. Ensuite, je supprime certains autres modules de package.json parce qu'ils ne sont plus nécessaires et que d'autres sont remplacés par des alternatives.

Maintenant, je veux nettoyer le dossier node_modules afin que seuls les modules répertoriés dans package.json y restent et que le reste doive disparaître, quelque chose comme npm clean. Je sais que je peux les supprimer manuellement, mais j'aimerais disposer de fonctionnalités sucre prêtes à l'emploi pour cela.

286
Sergei Basharov

Je pense que tu cherches npm Prune

npm Prune [<name> [<name ...]]

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.

Voir la documentation: https://docs.npmjs.com/cli/Prune

363
David Sherret

Vous pouvez supprimer votre dossier node_modules /, puis réinstaller les dépendances à partir de package.json.

rm -rf node_modules/
npm install

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

169
adamduren

En raison de l’imbrication des dossiers, Windows ne peut pas supprimer le dossier car son nom est trop long. Pour résoudre cela, installez RimRaf:

npm install rimraf -g

rimraf node_modules
93
user3844078

Première installation mondiale de rimraf

npm install rimraf -g

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

rimraf node_modules
20
Ankit Parmar

simple suffit de courir

rm -r node_modules

en fait, vous pouvez supprimer n'importe quel dossier avec cela.

comme rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

ouvrez simplement le gitbash allez à la racine du dossier et lancez cette commande

J'espère que cela aidera.

19
Ajay Kotnala

Avez-vous essayé NPM Prune?

il devrait désinstaller tout ce qui ne figure pas dans votre fichier de paquet

https://npmjs.org/doc/cli/npm-Prune.html

9

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

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

2
Osify

Supprimez/éditez les paquetages inutiles dans package-lock.json (les noms de paquetages seront écrits sous dépendances et devDependencies), puis

npm install

0
Fakrudeen

J'ai ajouté quelques lignes à l'intérieur de package.json:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

Si vous voulez uniquement clean, vous pouvez utiliser ce rimraf node_modules ou rm -rf node_modules.

Ça fonctionne bien

0
Amitesh Singh