Tüm npm modüllerini global olarak kaldırma komutu?


381

Tüm global npm modüllerini kaldırmak için bir komut var mı? Değilse, ne önerirsiniz?

Yanıtlar:


501

Aşağıdaki komut tüm global npm modüllerini kaldırır. Not: Bu Windows'ta çalışmaz. Çalışan bir Windows sürümü için, bkz. Ollie Bennett'in Cevabı .

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

Nasıl çalışır:

  • npm ls -gp --depth=0tüm global üst seviye modülleri listeler ( ls için cli belgelerine bakın )
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'aslında npm olmayan tüm modülleri yazdırır (bitmeyen /npm)
  • xargs npm -g rm önceki boruya gelen küresel olarak tüm modülleri kaldırır

3
Awk golf adamı olmak için, bu grep olmadan tek bir awk komutunda yapılabilir: awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}' Açıklama: boşluklarda veya @ üzerinde bölün, sadece @ ile satırları eşleştirin, modül adı son maçın ikinci ( $(NF-1)) olacak, sadece yazdırın değilsenpm
Fotios

28
Uyarı: yeni sürüm npm modülüne filtre uygulamaz. Bunu kaldırmak istemezsin.
neverfox

9
Ayrıca yeni sürümü yorumları okumadan çalıştırdım. DAİMA YORUMLARI OKUYUN. NPM'yi nasıl geri yükleyeceğiniz aşağıda açıklanmıştır: curl npmjs.org/install.sh | sh
Jack Allan

12
Vay. NPM işleri kaldırmayı kolaylaştırmaz. Paketçi ve mücevherlerle, her şeyi kaldırmak önemsizdir, grep'i kullanmanız gerektiği ve bunun gibi korkunç bir tasarımdır. Bunu yapmanın daha basit bir yolu var mı? Cevapta gereken kodu kim hatırlıyor?
Brian Sevgili

15
@neverfox ve diğerleri: Düzeltildi, npm'nin kendisi artık kaldırılmıyor. Rahatsızlık için özür dilerim
Kai Sternad

268

Windows kullananlar için , genel olarak yüklenmiş tüm npm paketlerini kaldırmanın en kolay yolu, aşağıdakilerin içeriğini silmektir:

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

%appdata%/npmExplorer'a, çalıştırma istemine veya başlat menüsünden yazarak oraya hızlı bir şekilde ulaşabilirsiniz .


5
Bunun için teşekkürler, npm-cache, bunu da kaldırmalı mıyım?
Neil

2
oradaysa npm klasörünü silmeyin
AutomatedMike

Npm sonraki sürümlerinde bu %USERPROFILE%\AppData\npmolmadan taşındı gibi görünüyor roaming.
Liam

1
Tüm paketleri yeniden yüklüyordum, npm installtekrar çalışırken EINTEGRITY hatalarına rastladım . Dosyamı da silmek zorunda kaldım package-lock.json.
ToastyMallows

kepçe kullanan pencereler için yol: C: \ Kullanıcılar \ kullanıcı adı \ kepçe \ apps \ nodejs \ current \ bin \ node_modules
Ariel Mirra

176

Kai Sternad'ın çözümünü denedim ama benim için kusurlu görünüyordu. awkSondan sonra deps ağacının kendisinden kalan çok sayıda özel sembol vardı .

Böylece, Kai Sternad'ın çözümünü kendi modifikasyonumla buldum ( kaşmir fikrinden biraz yardım alarak ):

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

npm ls -gp --depth=0tüm listelerin içinde npm modülleri küresel yüklenmiş ayrıştırılamaz formatta:

/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}' tüm dünyaya kurulan modüllerin listesini oluşturarak yollardan modül adlarını çıkarır.

grep -vE '^(npm|)$' npm'in kendisini ve boş satırları kaldırır.

xargs -r npm -g rmnpm -g rmlistedeki her modül için çağrı yapar.

Gibi Kai Sternad * nix altında 'ın çözümü, bu olacak tek iş.


1
Bu dosyalar nerede saklanıyor, bu yöntemden nefret ediyorum. Bir yerde sadece global bir paket yok mu?
Evan Carroll

2
@EvanCarroll Hayır, böyle bir dosya yok, ancak npmtüm global modüllerini aynı dizine yükler. Kesin yer değişebilir, ancak genellikle öyle /usr/local/lib/node_modules.
Leonid Beschastny

3
Sadece FYI, Bu da npm kaldırır
BrDaHa

11
Bu komut OSX üzerinde çalışır ve npm'i kaldırmaznpm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
real_ate

2
Bu komut, kapsamdaki paketi (benzeri @angular/cli) işleyemedi . Benim için başka bir eşleştirici ekliyorum awkve benim için çalışma komutu şöyle görünüyor:npm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Jack Q

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

benim için çalıştı

  • sudo npm list -g --depth=0. kurulu tüm üst seviyeleri listeler
  • awk -F ' ' '{print $2}' kurtulur ├──
  • awk -F '@' '{print $1}' '@' den önce yer alır
  • sudo xargs npm remove -g paketi global olarak kaldırır

Bu sürüm 14 Haziran'dan itibaren benim için en iyi şekilde çalıştı. Tek ekleme, listeden "UNMET" bağımlılıklarını filtrelemek olabilir, ancak bu npm remove UNMETNOOP gibi kritik değildir .
kanguru

4
grep -v npmböylece npm kendisi kaldırılmaması gerekir eklemek :sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
brauliobo

işte gidiyor, npm!
Hepsi а Vаиітy

26

Powershell kullanan kişiler için :

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

Önbelleği temizlemek için:

npm cache clear

22

Sadece %appdata%/npmdizininize geçin ve aşağıdakileri çalıştırın ...

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

EDIT: Bu komut, npm 3.3.6 (Düğüm 5.0) ile kesiliyor. Şimdi .bashrc dosyamda npm_uninstall_all ile eşleştirdiğim aşağıdaki Bash komutunu kullanıyorum:

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

Bonus eklendi mi? çok daha hızlı!

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

Package.json (NPM) altında listelenen tüm bağımlılıkları nasıl kaldırırsınız?


Bunu sev. Daha hızlı ve basit :) Ben sadece grep -v kullandım npmve nöncetr
apnerve

16

Windows'ta "C: \ Users {kullanıcıadı} \ AppData \ Roaming" dizinine gidin ve npm klasörünü el ile kaldırın


1
Bu, Windows'ta bizim için basit / kullanışlıydı. Teşekkürler.
rob2d

14

Yüklediğiniz tüm paketleri kaldırmak istiyorsanız, npm -g lsbunları bulmak için komutu ve sonra npm -g rmbunları kaldırmak için komutu kullanabilirsiniz .


7

Eğer varsa jq yüklü, hatta grep / awk / sed olmadan gidebilir:

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

Debian ve türetilmiş olarak jq'yi aşağıdakilerle yükleyebilirsiniz :

sudo apt-get install jq

Bu apropos jsontarzı ile sağlam bir cevaptır .
Richard Ayotte

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

5

İşletim sistemi OP tarafından belirtilmedi. İçin Windows'un bu komut yerel uçurmadın kullanılabilir ve kullanıcı genel modüller ve önbellek bulunuyor.

Linux'ta küresel kökün verilen kullanıcı yerine sistem için gerçekten küresel olduğunu fark ettim . Dolayısıyla, genel kökün silinmesi paylaşılan bir sistem için iyi bir fikir olmayabilir. Bu bir yana, ben ilgilenirseniz bash için komut dosyası taşıyabilir .

İçin Windows'un bir cmd dosyası kaydetme çalıştırmak için.

@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%

3

Herhangi bir paketi kaldırmak için bu kodu kullanın:

npm rm -g <package_name>

1
Soru açıkça belli bir paket ismi değil TÜM dedi.
Polv

2

Bütün iyi iş çıkardın. Bu, bir satır kodundaki önerileri birleştirir.

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

Farklı olan nedir? Kaldırma aşağıdaki gibi tek bir komutla yapılacaktır:npm rm -g *** *** ***


2

Kurulu tüm npm paketlerinizi bu konumda bulabilirsiniz:

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

ve kaldırmak istediğiniz npm içeriğini silin.

AppData gösterilmiyorsa, gizli olduğu anlamına gelir ve dosya gezgininde görüntüle'ye gidebilir ve Gizli öğeleri kontrol edebilirsiniz, o zaman orada tüm gizli klasörleri görebilirsiniz.


1

Pencerelerde iseniz ve tüm node_modules'ü kaldırmak / kaldırmak istiyorsanız, aşağıdaki adımları izlemeniz gerekir.

  1. Windows komut istemine git
  2. Node_modules dizinine gidin ( node_modules klasöründe değil )
  3. Aşağıdaki komutu yazın ve 1-2 dakika verin, node_module içindeki tüm dizinleri kaldıracaktır

     rmdir /s /q node_modules

Umarım bu pencerelerden birine yardımcı olur


1

Intellij Webstorm'unuz varsa, yerleşik grafik paket yöneticisini kullanabilirsiniz.

kök olarak açın ve boş bir proje oluşturun. git

Dosya> Ayarlar> Dil ve Çerçeveler> Node.js ve NPM

orada tüm kurulu paketleri göreceksiniz. Kaldırma işlemi kolaydır, kaldırmak istediğiniz herhangi bir paketi, Ctrl + woks'u seçip seçimini kaldırabilirsiniz.


1

İçin yarn global

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

Ya da aslında içinde ne olduğunu umursamıyorsanız package.json

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

Bu NPM için de geçerli olmalıdır, ancak NPM global'in nerede depolandığından tam olarak emin değilim.


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


0

İşte npm'in tüm işleri benim için yapmasına izin verdiğim yerde denediğim daha zarif bir çözüm.

# 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

Daha sonra yaparsanız npm uninstallveya npm removebu modüllere bir projenin normal bağımlılıkları gibi davranılır. Tamamlandığında bir package-lock.json dosyası bile oluşturur:

$ npm remove <package-name> # you may need sudo if it was installed using sudo  

-1

sed çözeltisi

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

-5

Sadece konsolunuzu yerleştirin:

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

Benim için işi ...


1
Aynı sayfada, burada daha önce bahsedilen çözümün tam olarak anlaşılması .
ivarni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.