Polecenie usunięcia wszystkich modułów npm globalnie?

Czy istnieje polecenie do usunięcia wszystkich globalnych modułów npm? Jeśli nie, to co sugerujesz?

 414
Author: EhevuTov, 2012-02-14

25 answers

Poniższe polecenie usuwa wszystkie globalne Moduły npm. Uwaga: to nie działa w systemie Windows. Aby zobaczyć działającą wersję systemu Windows, zobacz Ollie Bennett ' s Answer.

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

Oto Jak to działa:

  • npm ls -gp --depth=0 Lista wszystkich globalnych modułów najwyższego poziomu (patrz dokumentacja cli dla ls )
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' wypisuje wszystkie moduły, które w rzeczywistości nie są samym npm (nie kończy się na /npm)
  • xargs npm -g rm usuwa wszystkie moduły globalnie, które pochodzą z poprzedniego pipe
 533
Author: Kai Sternad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:22

Dla tych, którzy używają Windows, najprostszym sposobem na usunięcie wszystkich globalnie zainstalowanych pakietów npm jest usunięcie zawartości:

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

Możesz szybko się tam dostać, wpisując %appdata%/npm w Eksploratorze, Uruchom znak zachęty lub z menu start.

 297
Author: Ollie Bennett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-29 08:01:47

Próbowałem Rozwiązanie Kai Sternad ale wydawało mi się niedoskonałe. Po ostatnim awk z samego drzewa deps pozostało wiele specjalnych symboli.

Więc wymyśliłem własną modyfikację rozwiązania Kai Sternad (z niewielką pomocą cashmere ' s idea):

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

npm ls -gp --depth=0 lista wszystkich zainstalowanych globalnie modułów npm w formacie parsable :

/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}' wyodrębnia nazwy modułów ze ścieżek, tworząc listę wszystkich zainstalowanych globalnie modułów.

grep -vE '^(npm|)$' usuwa sam npm i puste linie.

xargs -r npm -g rm wywołania npm -g rm dla każdego modułu na liście.

Podobnie jak Rozwiązanie Kai Sternad, będzie działać tylko pod *nix.

 179
Author: Leonid Beschastny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:22
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

Pracował dla mnie

  • sudo npm list -g --depth=0. wyświetla listę wszystkich zainstalowanych na najwyższym poziomie
  • awk -F ' ' '{print $2}' pozbawia się ├──
  • awk -F '@' '{print $1}' pobiera część przed '@ '
  • sudo xargs npm remove -g usuwa pakiet globalnie
 65
Author: cashmere,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-10 02:09:48

Dla użytkowników Powershell :

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

Aby wyczyścić pamięć podręczną:

npm cache clear
 28
Author: Kedar Vaidya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-27 14:22:25

Wystarczy przełączyć się do katalogu %appdata%/npm i uruchomić następujące..

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

EDIT: to polecenie łamie się z npm 3.3.6(Node 5.0). Używam teraz następującego polecenia Bash, które zmapowałem do npm_uninstall_all w moim .plik bashrc:

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

Dodany bonus? szybciej!

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

Jak odinstalować wszystkie zależności wymienione w pakiecie.json (NPM)?

 23
Author: jedmao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:26

W windows przejdź do "C:\Users katalog{username} \ AppData \ Roaming" i ręcznie usuń folder npm

 18
Author: pradeep karunathilaka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-15 07:56:06

Jeśli chcesz usunąć wszystkie zainstalowane pakiety, możesz użyć polecenia npm -g ls, aby je znaleźć, a następnie npm -g rm, aby je usunąć.

 16
Author: Bill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-14 20:18:55

Jeśli masz zainstalowany jq , możesz przejść nawet bez grep / awk/sed:

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

Na Debianie i pochodnych możesz zainstalować jq za pomocą:

sudo apt-get install jq
 12
Author: eush77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 08:08:24

System operacyjny nie określony przez OP. dla Windows skrypt ten może być użyty do nuke lokalnych i globalnych modułów i pamięci podręcznej użytkownika.

Zauważyłem na Linuksie że globalny root jest naprawdę globalny dla systemu, a nie dla danego użytkownika. Więc usunięcie globalnego katalogu głównego może nie być dobrym pomysłem dla współdzielonego systemu. Pomijając to, mogę przenieść skrypt do bash jeśli zainteresowany.

Dla Windows Zapisz do pliku cmd, aby uruchomić.

@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
Author: bvj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-09 22:30:42

Dobrze się spisałeś. Jest to połączone sugestie w jednym kodzie liniowym.

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

Czym się różni? Deinstalacja zostanie wykonana jednym poleceniem: npm rm -g *** *** ***

 2
Author: FDisk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-01 20:50:20

Możesz zlokalizować wszystkie zainstalowane pakiety npm w lokalizacji:

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

I usuń zawartość npm, którą chcesz usunąć.

Jeśli AppData nie pokazuje, oznacza to, że jest ukryty i możesz przejść do widoku w Eksploratorze plików i sprawdzić ukryte elementy, a następnie tam możesz zobaczyć wszystkie ukryte foldery.

 2
Author: Sachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-02 17:01:12

Dla yarn global

nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add

Lub, jeśli nie dbasz o to, co jest w środku package.json

echo {} >  ~/.config/yarn/global/package.json && yarn global add

Powinno to dotyczyć również NPM, ale nie jestem do końca pewien, gdzie jest przechowywany npm global.

 2
Author: Polv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-19 19:56:08

Użyj tego kodu, aby odinstalować dowolny pakiet:

npm rm -g <package_name>
 1
Author: user1452840,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-30 22:23:24

Cóż, jeśli jesteś w systemie windows i chcesz usunąć / odinstalować wszystkie node_modules, musisz wykonać następujące kroki.

  1. przejdź do wiersza polecenia systemu windows
  2. Przejdź do katalogu node_modules (nie wewnątrz katalogu node_modules )
  3. Wpisz poniżej polecenie i daj na 1-2 minuty spowoduje to odinstalowanie wszystkich katalogów wewnątrz node_module

     rmdir /s /q node_modules
    

Mam nadzieję, że to pomoże komuś na windows

 1
Author: Anjum....,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-11 11:21:13

Jeśli posiadasz Intellij Webstorm, możesz użyć jego wbudowanego graficznego menedżera pakietów.

Otwórz go jako root i utwórz projekt emtpy. przejdź do

File > Settings > Language and Framework > Node.js i NPM

Tam zobaczysz wszystkie zainstalowane pakiety. Odinstalowanie jest łatwe, możesz wybrać i odznaczyć dowolny pakiet, który chcesz odinstalować, Ctrl+A woks, jak również.

 1
Author: George Shalvashvili,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-09 15:27:41
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
 0
Author: rxw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 06:46:16

Ponieważ jest to najlepsza odpowiedź w wyszukiwaniu zamieszczam to tutaj, ponieważ było to rozwiązanie, którego używałem w przeszłości do czyszczenia laptopów przełączających komputer.

cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +

Źródło: https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e

 0
Author: Giwan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-19 07:05:28

Oto bardziej eleganckie rozwiązanie, które próbowałem, gdzie pozwoliłem npm wykonać całą pracę za mnie.

# 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

Wtedy jeśli wykonasz npm uninstall lub npm remove te moduły będą traktowane tak, jakby były normalnymi zależnościami projektu. Generuje nawet blokadę pakietów.plik json po wykonaniu:

$ npm remove <package-name> # you may need sudo if it was installed using sudo  
 0
Author: IskandarG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-30 15:04:33

Jeśli masz MSYS Dla Windows:

rm -rf ${APPDATA//\\/\/}/npm
 0
Author: mekb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-22 10:50:48

Npm README.md Stany:

Jeśli chcesz usunąć wszystkie zainstalowane pakiety, następnie możesz użyć polecenia npm ls, aby je znaleźć, a następnie npm rm, aby usuń je.

Aby usunąć cruft pozostawiony przez npm 0.x, możesz użyć dołączonego clean-old.sh plik skryptu. Możesz go wygodnie uruchomić w ten sposób:

   npm explore npm -g -- sh scripts/clean-old.sh
 0
Author: scripter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-28 23:35:26

W macOS, wierzę, że można po prostu usunąć .npm-folder Globalny w katalogu użytkownika.

.npm i .npm-foldery globalne w katalogu użytkownika macOS:
.npm i .npm-foldery globalne w katalogu użytkownika macOS

 0
Author: Nico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-30 21:54:47

Dla bardziej ręcznego podejścia, które nie wymaga eksploratorów plików, nie obchodzi, gdzie znajduje się instalacja, jest bardzo mało prawdopodobne, aby zepsuć się w późniejszym terminie i jest w 100% kompatybilne z platformami i czuje się o wiele bezpieczniej ze względu na dodatkowe kroki, użyj tego.

  • npm ls -g --depth=0
  • Copy output
  • wklej do ulubionego edytora kodu (używam vsCode. Świetna Edycja wielu kursorów)
  • sprawdź, czy pakiety, które chcesz zachować (nodemon, yarn, by wymienić tylko kilka) usuń te linie
  • Usuń każdą instancję +-- lub inne dekoratory linii
  • Usuń wszystkie informacje o wersji (np. '@2.11.4')
  • Umieść wszystkie elementy w tej samej linii, rozdzielone spacjami
  • dodaj npm uninstall -g do początku tej jednej linii.
    • mój wygląda jak npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn, ale nie zainstalowałem wielu pakietów globalnie na tym komputerze.
  • Kopiuj wiersz
  • Wklej w terminalu, naciśnij enter, jeśli nie dodano jeszcze z kopiuj / wklej
  • Szukaj jakichkolwiek błędów w terminal.
  • Sprawdź npm ls -g, aby upewnić się, że jest kompletny. Jeśli coś zostało ponownie zainstalowane, przepłucz i powtórz

Inne podejścia tylko cli są świetne dla administratorów komputerowych robiących coś dla 100 prawie identycznych komputerów naraz z tego samego ssh, a może coś marionetkowego. Ale jeśli robisz to tylko raz, a nawet 5 razy w ciągu roku, jest to o wiele łatwiejsze.

 0
Author: RoboticRenaissance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-03 21:07:41

Sed solution

npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
 -1
Author: koola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-05 16:04:55

Wystarczy umieścić w konsoli:

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

Its work for me...

 -5
Author: busterkika,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-04 21:31:57