Jawaban:
Perintah berikut menghapus semua modul npm global. Catatan: ini tidak berfungsi di Windows. Untuk versi Windows yang berfungsi, lihat Ollie Bennett's Answer .
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Inilah cara kerjanya:
npm ls -gp --depth=0
daftar semua modul tingkat global (lihat dokumentasi CLI untuk ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
mencetak semua modul yang sebenarnya bukan npm itu sendiri (tidak berakhir dengan /npm
)xargs npm -g rm
menghapus semua modul secara global yang melewati pipa sebelumnyaBagi mereka yang menggunakan Windows , cara termudah untuk menghapus semua paket npm yang terinstal secara global adalah dengan menghapus konten dari:
C:\Users\username\AppData\Roaming\npm
Anda dapat sampai di sana dengan cepat dengan mengetikkan %appdata%/npm
explorer, menjalankan prompt, atau dari menu mulai.
%USERPROFILE%\AppData\npm
tanpa roaming
.
npm install
lagi. Saya harus menghapus package-lock.json
file saya juga.
Saya mencoba solusi Kai Sternad tetapi tampaknya tidak sempurna bagi saya. Ada banyak simbol khusus yang tersisa setelah yang terakhir awk
dari pohon deps itu sendiri.
Jadi, saya datang dengan modifikasi saya sendiri dari solusi Kai Sternad (dengan sedikit bantuan dari ide 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
daftar semua modul npm yang terinstal secara global dalam format yang dapat diuraikan :
/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}'
mengekstrak nama modul dari jalur, membentuk daftar semua modul yang diinstal secara global.
grep -vE '^(npm|)$'
menghapus npm sendiri dan baris kosong.
xargs -r npm -g rm
panggilan npm -g rm
untuk setiap modul dalam daftar.
Seperti solusi Kai Sternad , itu hanya akan bekerja di bawah * nix.
npm
instal semua modul globalnya ke direktori yang sama. Lokasi yang tepat mungkin berbeda, tetapi biasanya itu /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
). Saya menambahkan korek api lain untuk awk
dan perintah kerja untuk saya terlihat seperti ini: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
bekerja untukku
sudo npm list -g --depth=0.
daftar semua level atas diinstalawk -F ' ' '{print $2}'
menghilangkan ├──awk -F '@' '{print $1}'
mendapat bagian sebelum '@'sudo xargs npm remove -g
menghapus paket secara globalnpm remove UNMET
halnya NOOP.
grep -v npm
sehingga npm itu sendiri tidak dihapus:sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Bagi mereka yang menggunakan Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Untuk menghapus cache:
npm cache clear
Cukup pindah ke %appdata%/npm
direktori Anda dan jalankan yang berikut ...
for package in `ls node_modules`; do npm uninstall $package; done;
EDIT: Perintah ini rusak dengan npm 3.3.6 (Node 5.0). Saya sekarang menggunakan perintah Bash berikut, yang telah saya petakan ke npm_uninstall_all di file .bashrc saya:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Bonus tambahan? itu jauh lebih cepat!
https://github.com/npm/npm/issues/10187
Bagaimana Anda menghapus semua dependensi yang tercantum dalam package.json (NPM)?
npm
dan n
sebelumtr
di windows buka direktori "C: \ Users {username} \ AppData \ Roaming" dan hapus folder npm secara manual
Jika Anda telah menginstal jq , Anda dapat pergi bahkan tanpa grep / awk / sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
Di Debian dan turunan Anda dapat menginstal jq dengan:
sudo apt-get install jq
json
gaya apropos .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
OS tidak ditentukan oleh OP. Untuk Windows , skrip ini dapat digunakan untuk menyembunyikan modul dan cache global lokal dan pengguna.
Saya perhatikan di linux bahwa root global benar-benar global ke sistem daripada pengguna yang diberikan. Jadi menghapus root global mungkin bukan ide yang baik untuk sistem bersama. Selain itu, saya dapat port script untuk bash jika tertarik
Untuk Windows , simpan ke file cmd untuk dijalankan.
@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%
Gunakan kode ini untuk menghapus instalasi paket apa pun:
npm rm -g <package_name>
Anda dapat menemukan semua paket npm yang terinstal di lokasi:
C:\Users\username\AppData\Roaming\npm
dan hapus konten npm yang ingin Anda hapus.
Jika AppData tidak ditampilkan, itu berarti tersembunyi dan Anda dapat pergi ke Lihat di file explorer dan memeriksa item Tersembunyi maka di sana Anda dapat melihat semua folder yang tersembunyi.
Nah jika Anda berada di windows, dan ingin menghapus / uninstall semua node_modules maka Anda perlu melakukan langkah-langkah berikut.
Ketik perintah di bawah ini dan berikan selama 1-2 menit itu akan menghapus semua direktori di dalam node_module
rmdir /s /q node_modules
Semoga ini bisa membantu seseorang di windows
jika Anda memiliki Intellij Webstorm Anda dapat menggunakan manajer paket grafis bawaannya.
buka sebagai root dan buat proyek emtpy. pergi ke
File> Pengaturan> Bahasa dan Kerangka Kerja> Node.js dan NPM
di sana Anda akan melihat semua paket yang diinstal. Menghapus instalan mudah, Anda dapat memilih dan membatalkan paket yang ingin Anda hapus, Ctrl + a wok juga.
Untuk yarn global
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
Atau, jika Anda tidak peduli dengan apa yang sebenarnya ada di dalam package.json
echo {} > ~/.config/yarn/global/package.json && yarn global add
Ini juga harus berlaku untuk NPM, tetapi saya tidak yakin di mana NPM global disimpan.
Karena ini adalah jawaban teratas dalam pencarian, saya memposting ini di sini karena itu adalah solusi yang saya gunakan di masa lalu untuk membersihkan komputer yang mengganti laptop.
cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +
sumber: https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e
Berikut adalah solusi yang lebih elegan yang saya coba di mana saya membiarkan npm melakukan semua pekerjaan untuk saya.
# 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
Kemudian jika Anda melakukannya npm uninstall
atau npm remove
modul-modul ini akan diperlakukan seolah-olah mereka adalah dependensi normal suatu proyek. Itu bahkan menghasilkan file package-lock.json ketika sudah selesai:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
Masukkan saja konsol Anda:
sudo npm list -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm hapus -g
Ini bekerja untuk saya ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Penjelasan: pisah pada spasi atau @, hanya baris yang cocok dengan @, nama modul akan menjadi pertandingan kedua terakhir ($(NF-1)
), jadi hanya cetak jika tidaknpm