Câu trả lời:
Lệnh sau loại bỏ tất cả các mô-đun npm toàn cầu. Lưu ý: điều này không hoạt động trên Windows. Đối với phiên bản Windows đang hoạt động, xem Câu trả lời của Ollie Bennett .
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Đây là cách nó làm việc:
npm ls -gp --depth=0
liệt kê tất cả các mô-đun cấp cao nhất toàn cầu (xem tài liệu cli cho ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
in tất cả các mô-đun không thực sự là npm (không kết thúc bằng /npm
)xargs npm -g rm
loại bỏ tất cả các mô-đun trên toàn cầu đi qua đường ống trước đóĐối với những người sử dụng Windows , cách dễ nhất để xóa tất cả các gói npm được cài đặt trên toàn cầu là xóa nội dung của:
C:\Users\username\AppData\Roaming\npm
Bạn có thể đến đó nhanh chóng bằng cách nhập %appdata%/npm
vào trình thám hiểm, dấu nhắc chạy hoặc từ menu bắt đầu.
%USERPROFILE%\AppData\npm
mà không có roaming
.
npm install
lại. Tôi đã phải xóa package-lock.json
tập tin của tôi là tốt.
Tôi đã thử giải pháp của Kai Sternad nhưng nó dường như không hoàn hảo đối với tôi. Có rất nhiều biểu tượng đặc biệt còn sót lại sau lần cuối cùng awk
từ chính cây deps.
Vì vậy, tôi đã đưa ra cách sửa đổi của riêng mình về giải pháp của Kai Sternad (với một chút trợ giúp từ ý tưởng của 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
liệt kê tất cả các mô-đun npm được cài đặt trên toàn cầu ở định dạng có thể phân tích cú pháp :
/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}'
trích xuất tên mô-đun từ các đường dẫn, tạo thành danh sách tất cả các mô-đun được cài đặt trên toàn cầu.
grep -vE '^(npm|)$'
loại bỏ npm chính nó và dòng trống.
xargs -r npm -g rm
các cuộc gọi npm -g rm
cho mỗi mô-đun trong danh sách.
Giống như giải pháp của Kai Sternad , nó sẽ chỉ hoạt động dưới * nix.
npm
cài đặt tất cả các mô-đun toàn cầu của nó vào cùng một thư mục. Vị trí chính xác có thể khác nhau, nhưng thường là vậy /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
). Tôi thêm một công cụ đối sánh khác awk
và lệnh làm việc cho tôi trông như thế này: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
đã làm cho tôi
sudo npm list -g --depth=0.
liệt kê tất cả các cấp cao nhất được cài đặtawk -F ' ' '{print $2}'
thoát khỏi ──awk -F '@' '{print $1}'
nhận phần trước '@'sudo xargs npm remove -g
loại bỏ gói trên toàn cầunpm remove UNMET
đơn giản là NOOP.
grep -v npm
để bản thân sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Đối với những người sử dụng Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Để xóa bộ nhớ cache:
npm cache clear
Chỉ cần chuyển vào %appdata%/npm
thư mục của bạn và chạy ...
for package in `ls node_modules`; do npm uninstall $package; done;
EDIT: Lệnh này ngắt với npm 3.3.6 (Nút 5.0). Bây giờ tôi đang sử dụng lệnh Bash sau, mà tôi đã ánh xạ tới npm_uninstall_all trong tệp .bashrc của mình:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Đã thêm tiền thưởng? đó là cách nhanh hơn!
https://github.com/npm/npm/issues/10187
Làm thế nào để bạn gỡ cài đặt tất cả các phụ thuộc được liệt kê trong pack.json (NPM)?
npm
và n
trướctr
trong cửa sổ, hãy chuyển đến thư mục "C: \ Users {username} \ AppData \ Roaming" và xóa thủ công thư mục npm
Nếu bạn đã cài đặt jq , bạn có thể đi ngay cả khi không có grep / awk / sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
Trên Debian và dẫn xuất, bạn có thể cài đặt jq với:
sudo apt-get install jq
json
phong cách apropos .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
Hệ điều hành không được chỉ định bởi OP. Đối với Windows , tập lệnh này có thể được sử dụng để khởi động các mô-đun và bộ đệm toàn cục bộ và cục bộ của người dùng.
Tôi nhận thấy trên linux rằng root toàn cầu thực sự là toàn cầu đối với hệ thống thay vì người dùng nhất định. Vì vậy, xóa gốc toàn cầu có thể không phải là một ý tưởng tốt cho một hệ thống chia sẻ. Điều đó sang một bên, tôi có thể chuyển tập lệnh sang bash nếu quan tâm.
Đối với Windows , lưu vào tệp cmd để chạy.
@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%
Sử dụng mã này để gỡ cài đặt bất kỳ gói nào:
npm rm -g <package_name>
Bạn có thể định vị tất cả các gói npm được cài đặt tại vị trí:
C:\Users\username\AppData\Roaming\npm
và xóa nội dung của npm mà bạn muốn xóa.
Nếu AppData không hiển thị, điều đó có nghĩa là nó bị ẩn và bạn có thể vào View in file explorer và kiểm tra các mục Hidden sau đó bạn có thể thấy tất cả các thư mục ẩn.
Vâng, nếu bạn đang ở trên windows và muốn xóa / gỡ cài đặt tất cả node_modules thì bạn cần thực hiện các bước sau.
Gõ lệnh dưới đây và cho nó trong 1-2 phút, nó sẽ gỡ cài đặt tất cả các thư mục bên trong node_module
rmdir /s /q node_modules
Hy vọng điều này sẽ giúp một số người trên windows
nếu bạn có Intellij Webstorm, bạn có thể sử dụng trình quản lý gói đồ họa tích hợp.
mở nó dưới dạng root và tạo một dự án emtpy. đi đến
Tệp> Cài đặt> Ngôn ngữ và Khung> Node.js và NPM
ở đó bạn sẽ thấy tất cả các gói được cài đặt. Gỡ cài đặt rất dễ dàng, bạn có thể chọn và bỏ chọn bất kỳ gói nào bạn muốn gỡ cài đặt, Ctrl + một chảo.
Dành cho yarn global
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
Hoặc, nếu bạn không quan tâm đến những gì thực sự bên trong package.json
echo {} > ~/.config/yarn/global/package.json && yarn global add
Điều này cũng áp dụng cho NPM, nhưng tôi không chắc chắn chính xác nơi NPM toàn cầu được lưu trữ.
Vì đây là câu trả lời hàng đầu trong tìm kiếm nên tôi đăng bài này ở đây vì đây là giải pháp tôi đã sử dụng trong quá khứ để làm sạch máy tính xách tay chuyển đổi máy tính.
cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +
nguồn: https://winsmarts.com/delete-all-node-modules- Folders-recursively-on-windows-edcc9a9c079e
Đây là một giải pháp tao nhã hơn mà tôi đã thử khi tôi để npm làm tất cả công việc cho tôi.
# 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
Sau đó, nếu bạn làm npm uninstall
hoặc npm remove
các mô-đun này sẽ được xử lý như thể chúng là các phụ thuộc bình thường của một dự án. Nó thậm chí còn tạo ra một tệp lock-lock.json khi hoàn thành:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
Chỉ cần đặt trong bảng điều khiển của bạn:
danh sách sudo npm -g --depth = 0. | awk -F '' '{in $ 2}' | awk -F '@' '{in $ 1}' | sudo xargs npm gỡ bỏ -g
Nó làm việc cho tôi ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Giải thích: chia nhỏ trên dấu cách hoặc @, chỉ khớp các dòng với @, tên mô-đun sẽ là lần thứ hai để khớp cuối cùng ($(NF-1)
), vì vậy chỉ in nếu không phải vậynpm