Réponses:
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 d'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 globaux de premier niveau (voir la documentation cli pour ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
affiche tous les modules qui ne sont pas réellement npm lui-même (ne se termine pas par /npm
)xargs npm -g rm
supprime tous les modules globalement qui viennent sur le tube précédentPour ceux qui utilisent Windows , la façon la plus simple de supprimer tous les packages npm installés globalement est de supprimer le contenu de:
C:\Users\username\AppData\Roaming\npm
Vous pouvez y accéder rapidement en tapant %appdata%/npm
soit l'explorateur, soit l'invite d'exécution, soit depuis le menu Démarrer.
%USERPROFILE%\AppData\npm
sans roaming
.
npm install
nouvelle exécution . J'ai également dû supprimer mon package-lock.json
fichier.
J'ai essayé la solution de Kai Sternad mais elle me semblait imparfaite. Il y avait beaucoup de symboles spéciaux laissés après le dernier awk
de l'arbre deps lui-même.
Donc, j'ai trouvé ma propre modification de la solution de Kai Sternad (avec un peu d'aide de l'idée du 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
répertorie tous les modules npm installés dans le monde 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 à l'échelle mondiale.
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 , elle ne fonctionnera que sous * nix.
npm
installe tous ses modules globaux dans le même répertoire. L'emplacement exact peut varier, mais c'est généralement le cas /usr/local/lib/node_modules
.
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
@angular/cli
). J'ajoute un autre match pour awk
et la commande de travail pour moi ressemble à ceci:npm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
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ésawk -F ' ' '{print $2}'
se débarrasse de ├──awk -F '@' '{print $1}'
obtient la partie avant '@'sudo xargs npm remove -g
supprime le package globalementnpm remove UNMET
tout comme NOOP.
grep -v npm
pour que npm lui-même ne soit pas supprimé:sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
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
Passez simplement dans votre %appdata%/npm
répertoire et exécutez 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 à npm_uninstall_all dans mon fichier .bashrc:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Bonus supplémentaire? 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)?
npm
et n
avant letr
dans Windows, allez dans le répertoire "C: \ Users {username} \ AppData \ Roaming" et supprimez manuellement le dossier npm
Si jq est 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 dérivé, vous pouvez installer jq avec:
sudo apt-get install jq
json
style apropos .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
OS non spécifié par OP. Pour Windows , ce script peut être utilisé pour neutraliser les modules locaux et globaux et le cache 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 pourrait donc ne pas être une bonne idée pour un système partagé. Cela mis à part, je peux porter le script sur bash si cela m'intéresse.
Pour Windows , enregistrez-le dans un fichier cmd pour l'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%
Utilisez ce code pour désinstaller n'importe quel package:
npm rm -g <package_name>
Tout ce que vous avez fait du bon travail. Il s'agit de suggestions combinées dans un code de 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:npm rm -g *** *** ***
Vous pouvez localiser tous vos packages npm installés à l'emplacement:
C:\Users\username\AppData\Roaming\npm
et supprimez le contenu de npm que vous souhaitez supprimer.
Si AppData ne s'affiche pas, cela signifie qu'il est masqué et vous pouvez aller dans Afficher dans l'explorateur de fichiers et vérifier les éléments cachés, puis vous pouvez voir tous les dossiers cachés.
Eh bien, si vous êtes sous Windows et que vous souhaitez supprimer / désinstaller tous les modules node_modules, vous devez suivre les étapes suivantes.
Tapez la commande ci-dessous et donnez-lui pendant 1-2 minutes, il désinstallera tous les répertoires à l'intérieur de node_module
rmdir /s /q node_modules
J'espère que cela aidera quelqu'un sur Windows
si vous avez Intellij Webstorm, vous pouvez utiliser son gestionnaire de packages graphiques intégré.
ouvrez-le en tant que root et créez un projet emtpy. aller à
Fichier> Paramètres> Langue et cadres> Node.js et NPM
vous y verrez tous les packages installés. La désinstallation est facile, vous pouvez sélectionner et désélectionner n'importe quel package que vous souhaitez désinstaller, Ctrl + a woks également.
Pour yarn global
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
Ou, si vous ne vous souciez pas de ce qui se trouve réellement à l'intérieur package.json
echo {} > ~/.config/yarn/global/package.json && yarn global add
Cela devrait également s'appliquer à NPM, mais je ne sais pas exactement où NPM global est stocké.
Puisque c'est la meilleure réponse dans la recherche, je poste ceci ici car c'était la solution que j'ai utilisée dans le passé pour nettoyer les ordinateurs portables de commutation d'ordinateur.
cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +
source: https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e
Voici une solution plus élégante que j'ai essayée où je laisse npm faire tout le travail pour moi.
# On Linux Mint 19.1 Cinnamon
# First navigate to where your global packages are installed.
$ npm root # returns /where/your/node_modules/folder/is
$ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules
Ensuite , si vous le faites npm uninstall
ou npm remove
ces modules seront traitées comme si elles étaient des dépendances normales d'un projet. Il génère même un fichier package-lock.json lorsqu'il est terminé:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
Mettez simplement dans votre console:
sudo npm list -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm supprimer -g
Son travail pour moi ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Explication: diviser sur les espaces ou @, ne faire correspondre que les lignes avec @, le nom du module sera l'avant-dernier match ($(NF-1)
), donc seulement imprimer sinonnpm