web-dev-qa-db-fra.com

Commande pour supprimer tous les modules npm globalement?

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

343
EhevuTov

La commande suivante supprime tous les modules npm globaux. Remarque: cela ne fonctionne pas sous Windows. Pour une version Windows fonctionnelle, voir Answer 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 répertorie tous les modules de niveau supérieur globaux (voir la documentation de cli pour ls )
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' affiche tous les modules qui ne sont pas réellement npm (ne se termine pas par /npm).
  • xargs npm -g rm supprime tous les modules venant du canal précédent
458
Kai Sternad

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 vous y rendre rapidement en tapant %appdata% (soit dans l’Explorateur, soit dans le menu Démarrer, soit dans le menu Démarrer).

240
Ollie Bennett

J'ai essayé la solution de Kai Sternad mais cela me semblait imparfait. Il restait beaucoup de symboles spéciaux après le dernier awk de l’arborescence des dépôts elle-même.

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

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

npm ls -gp --depth=0 répertorie 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 modules des chemins, formant la liste de tous les modules installés globalement.

grep -vE '^(npm|)$' supprime NPM 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 , elle ne fonctionnera que sous * nix.

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

a travaillé pour moi

  • Sudo npm list -g --depth=0. liste tous les niveaux 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
60
cashmere

Il suffit de basculer dans votre répertoire %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)?

22
jedmao

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 vider le cache:

npm cache clear
21
Kedar Vaidya

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

13
Bill

sous Windows, utilisez le chemin "C:\Utilisateurs\nom d'utilisateur\AppData\Roaming" et supprimez manuellement le dossier npm

9

Si vous avez jq installé, 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 ses dérivés, vous pouvez installer jq avec:

Sudo apt-get install jq
6
eush77

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

J'ai remarqué sur linux que la racine globale est vraiment globale pour le système plutôt que pour l'utilisateur donné. Donc, supprimer la racine globale peut ne pas être une bonne idée pour un système partagé. Cela dit, je peux porter le script sur bash si vous êtes 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%
5
bvj

Utilisez ce code pour désinstaller n'importe quel paquet:

npm rm -g <package_name>
4
user1452840

Tout ce que vous avez fait du bon travail. Ceci est une combinaison de suggestions dans un code à une ligne.

npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`

Qu'est-ce qui est différent? La désinstallation se fera en une seule commande comme par exemple: npm rm -g *** *** ***

2
FDisk

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

  1. Aller à la commande windows invite
  2. Accédez au répertoire node_modules (pas dans le dossier node_modules)
  3. Tapez ci-dessous la commande et donnez-la pendant 1-2 minutes, elle désinstallera tous les répertoires du noeud_module

     rmdir /s /q node_modules
    

J'espère que cela aidera quelqu'un sur Windows

1
Anjum....

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 vide. aller à

Fichier> Paramètres> Langue et cadres> Node.js et NPM

là, vous verrez tous les paquets installés. La désinstallation est facile, vous pouvez sélectionner et désélectionner n’importe quel paquet que vous souhaitez désinstaller, ainsi que Ctrl + woks.

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