Commande pour supprimer tous les modules npm globalement?

Existe-t-il une commande pour supprimer tous les modules npm globaux? Si non, que proposez-vous?

La commande suivante supprime tous les modules npm globaux. Remarque: cela ne fonctionne pas sous Windows. Pour une version Windows fonctionnelle, voir la réponse de Ollie Bennett .

npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm 

Voici comment cela fonctionne:

  • npm ls -gp --depth=0 liste tous les modules globaux de premier niveau (voir la documentation cli pour ls )
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' imprime tous les modules qui ne sont pas réellement npm (ne se termine pas par /npm )
  • xargs npm -g rm supprime tous les modules globalement qui viennent sur le tube précédent

Pour ceux qui utilisent Windows , le moyen le plus simple de supprimer tous les packages npm installés globalement consiste à supprimer le contenu de:

C:\Users\username\AppData\Roaming\npm

Vous pouvez y arriver rapidement en tapant %appdata% (soit dans l’explorateur, l’invite d’exécution ou le menu de démarrage).

J’ai essayé la solution de Kai Sternad mais cela m’a semblé imparfait. Il restait beaucoup de symboles spéciaux après la dernière minute de l’arbre deps lui-même.

Donc, je suis venu avec ma propre modification de la solution de Kai Sternad (avec un peu d’aide de l’idée de Cachemire ):

 npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm 

npm ls -gp --depth=0 liste tous les modules npm installés globalement au format analysable :

 /home/leonid/local/lib /home/leonid/local/lib/node_modules/bower /home/leonid/local/lib/node_modules/coffee-script ... 

awk -F/node_modules/ '{print $2}' extrait les noms de module des chemins, formant la liste de tous les modules installés globalement.

grep -vE '^(npm|)$' supprime npm lui-même et les lignes vides.

xargs -r npm -g rm appelle npm -g rm pour chaque module de la liste.

Comme la solution de Kai Sternad , cela ne fonctionnera que sous * nix.

 sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g 

travaillé pour moi

  • sudo npm list -g --depth=0. répertorie tous les niveaux supérieurs installés
  • awk -F ' ' '{print $2}' se débarrasse de ├──
  • awk -F '@' '{print $1}' obtient la partie avant ‘@’
  • sudo xargs npm remove -g supprime le paquet globalement

Il suffit de basculer dans votre %appdata%/npm et d’exécuter ce qui suit …

 for package in `ls node_modules`; do npm uninstall $package; done; 

EDIT: cette commande rompt avec npm 3.3.6 (Node 5.0). J’utilise maintenant la commande Bash suivante, que j’ai mappée sur npm_uninstall_all dans mon fichier .bashrc:

 npm uninstall `ls -1 node_modules | tr '/\n' ' '` 

Bonus ajouté? c’est beaucoup plus rapide!

https://github.com/npm/npm/issues/10187

Comment désinstaller toutes les dépendances répertoriées dans package.json (NPM)?

Pour ceux qui utilisent Powershell :

 npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name } 

Pour effacer le cache:

 npm cache clear 

Si vous souhaitez supprimer tous les packages que vous avez installés, vous pouvez utiliser la commande npm -g ls pour les rechercher, puis npm -g rm pour les supprimer.

Si vous avez installé jq , vous pouvez aller même sans grep / awk / sed:

 npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs npm rm -g 

Sur Debian et dérivée, vous pouvez installer jq avec:

 sudo apt-get install jq 

OS non spécifié par OP. Pour Windows , ce script peut être utilisé pour interférer avec les modules et le cache globaux locaux et de l’utilisateur.

J’ai remarqué sur Linux que la racine globale est vraiment globale pour le système au lieu de l’utilisateur donné. La suppression de la racine globale peut donc ne pas être une bonne idée pour un système partagé. Cela mis à part, je peux porter le script à bash s’il est intéressé.

Pour Windows , enregistrez dans un fichier cmd à exécuter.

 @ECHO OFF SETLOCAL EnableDelayedExpansion SETLOCAL EnableExtensions SET /A ecode=0 :: verify SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])? IF /I NOT "%conf%"=="y" ( ECHO operation aborted SET /A ecode=!ecode!+1 GOTO END ) :: wipe global and local npm root FOR %%a IN ("" "-g") DO ( :: get root path into var SET cmd=npm root %%~a FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r) :: paranoid ECHO validating module path "!npm_root!" IF "!npm_root:~-12!"=="node_modules" ( IF NOT EXIST "!npm_root!" ( ECHO npm root does not exist "!npm_root!" ) ELSE ( ECHO deleting "!npm_root!" ... :: delete RMDIR /S /Q "!npm_root!" ) ) ELSE ( ECHO suspicious npm root, ignoring "!npm_root!" ) ) :: clear the cache ECHO clearing the npm cache ... call npm cache clean :: done ECHO done :END ENDLOCAL & EXIT /b %ecode% 

dans Windows, utilisez le chemin “C: \ Users \ nom d’utilisateur \ AppData \ Roaming” et supprimez manuellement le dossier npm

Utilisez ce code pour désinstaller tout package:

 npm rm -g  

Eh bien, si vous êtes sur Windows, et que vous souhaitez supprimer / désinstaller tous les node_modules, vous devez suivre les étapes suivantes.

  1. Accéder à l’invite de commande windows
  2. Naviguez jusqu’au répertoire node_modules ( pas dans le dossier node_modules )
  3. Tapez ci-dessous la commande et donnez-lui pendant 1-2 minutes, il va désinstaller tous les répertoires dans node_module

      rmdir /s /q node_modules 

J’espère que cela aidera quelqu’un sur les fenêtres

Si vous avez Intellij Webstorm, vous pouvez utiliser son gestionnaire de paquets graphique intégré.

Ouvrez-le en tant que root et créez un projet emtpy. aller à

Fichier> Paramètres> Langue et frameworks de travail> Node.js et NPM

vous y verrez tous les paquets installés. La désinstallation est simple, vous pouvez sélectionner et désélectionner tout package que vous souhaitez désinstaller, Ctrl + a woks également.

 npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g 

solution sed

 npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g 

C’est aussi simple que: rm -rf ~/.npm

Il suffit de mettre dans votre console:

sudo npm list -g –depth = 0. | awk -F ” ‘{imprimer $ 2}’ | awk -F ‘@’ ‘{imprimer $ 1}’ | sudo xargs npm enlève -g

Son travail pour moi …