Cách xóa node_modules - Thư mục lồng nhau sâu trong Windows


229

Khi cố gắng loại bỏ thư mục node_modules được tạo bởi npm install:

Tên tệp nguồn lớn hơn hệ thống tệp được hỗ trợ. Hãy thử di chuyển đến một vị trí có tên đường dẫn ngắn hơn hoặc thử đổi tên thành (các) tên ngắn hơn trước khi thử thao tác này

Tôi cũng đã thử shift+ deletevà vẫn gặp vấn đề tương tự.


try renaming to shorter name(s) before attempting this operation
SLaks

3
Cảm ơn đề xuất của bạn, @ SLaks! Tôi cũng nên đề cập rằng tôi cũng đã thử điều đó, nhưng các tệp và thư mục rất nhiều và sâu, nó có những thứ như C: \ Users \ my_user_name \ projs \ backend \ node_modules \ fantemin \ node_modules \ fantemin-optipng \ node_modules \ optipng \ node_modules \ bin-Wrapper \ node_modules \ bin-check \ node_modules \ execable \ node_modules \ meow \ node_modules \ camelcase-Keys \ node_modules \ ... và nó sẽ tiếp tục. Việc đổi tên các tệp theo cách thủ công là không thực tế và tôi hy vọng sẽ có những cách dễ dàng hơn mà không cần viết chương trình
leoh 27/1/2015

1
Webstorm có thể xóa tất cả.
ozzimpact

Tôi đã sử dụng công cụ Long Path Fixer và xóa thành công thư mục ".meteor" này. ( long-path-fixer.en.softonic.com )
Vũ Đoan

CHẠY CÀI ĐẶT, npm cài đặt rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Câu trả lời:


438

Vì đây là kết quả hàng đầu của google, đây là những gì làm việc cho tôi:

Cài đặt RimRaf:

npm install rimraf -g

Và trong thư mục dự án xóa thư mục node_modules với:

rimraf node_modules

Nếu bạn muốn xóa đệ quy:

rimraf .\**\node_modules

[ http://www.nikola-breznjak.com/blog/nodejs/how-to-delete-node_modules-folder-on-windows-machine/ ]


không hoạt động ở đây: "Lỗi: ENOTEMPTY, thư mục không trống". và cung cấp liên kết không hoạt động!
olefrank

7
Tôi là tác giả của bài viết trên blog. @olefrank: điều này có xu hướng xảy ra khi bạn cố gắng xóa toàn bộ thư mục (không chỉ là node_modules), và nếu bạn tình cờ mở thư mục trong cửa sổ Explorer. usagidon, cảm ơn vì đã liên kết nguồn gốc.
Nikola

2
Điều đó sẽ không hữu ích nếu bạn không có NodeJS hoặc bạn đang cố xóa các mô-đun toàn cầu của NodeJS sau khi gỡ cài đặt nó (đó là lý do tại sao tôi phải sử dụng bản sao)
Zorgatone

1
Tôi sẽ thêm 2 xu của tôi vào đây để cụ thể hơn một chút cho câu hỏi. Bạn có thể xóa tất cả các thư mục node_modules theo cách đệ quy (sử dụng mẫu hình cầu) như thế này:rimraf .\**\node_modules
Artif3x

1
@ Commifent của Artif3x nên được đánh dấu là câu trả lời hay nhất! cảm ơn vì mẹo xóa đệ quy :-)
Juan Stoppa

111

Tôi chỉ đơn giản thực hiện điều đó bằng cách sử dụng Winrar, đây có thể là một giải pháp lạ nhưng hoạt động rất tốt.

  • nhấp chuột phải vào node_modulesthư mục
  • chọn Add to archive ...từ menu.
  • Hộp thoại Winrar mở
  • chỉ cần kiểm tra tùy chọn delete files after archiving
  • Đừng quên xóa node_modules.rar sau khi hoàn thành.


[CẬP NHẬT] Điều này cũng hoạt động với 7Zip



7
wow đây là lén lút! +1 Được sử dụng robocopy tho rõ ràng điều này đã được sửa với npm mới hoặc một cái gì đó.
erp

1
@ChrisS Nó hoạt động như thế nào với 7Zip? Đặc biệt là khi sử dụng GUI!
bennos

4
Trong năm 2016 (và đặc biệt là năm 2018), bạn không cần phải khéo léo để xóa một loạt các tệp.
webelo

73

XÓA chỉ bằng cách sử dụng lệnh DOS mà không cần cài đặt:

Tạo một thư mục trống "kiểm tra" trên ổ C hoặc D và sử dụng lệnh DOS

robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

Sau khi hoàn thành lệnh trên, thư mục của bạn sẽ trống, bây giờ bạn có thể xóa thư mục.

Đừng lo lắng thư mục kiểm tra của bạn sẽ luôn trống, vì vậy bạn có thể xóa nó bất cứ lúc nào.


12
Câu trả lời hay nhất, vì bạn không cần cài đặt bất cứ thứ gì
luschn

1
Sau khi thử rimraf và thêm một thư mục mạng, đây là giải pháp sạch nhất tôi tìm thấy. Cảm ơn đã chia sẻ điều này.
danyim

1
giải pháp tuyệt vời; dễ dàng.
bob.mazzo

2
Tôi chỉ thực hiện một bổ sung nhỏ : > NUL. Khi tôi vừa thử điều này, nó đã bị điều khiển bởi bộ điều khiển và sẽ mất 15 phút hoặc hơn. Với sự chuyển hướng tại chỗ, nó đã hoàn thành trong khoảng 2
Mike Caron

Thật buồn cười là để xóa một số tệp JS, bạn cần một thư viện JS khác.
linuxunil

30

Bạn có thể sử dụng Git Bash để xóa thư mục:

ví dụ: c: \ users \ olefrank \ dự án \ mynodeproject

rm -rf / c / users / olefrank / dự án / mynodeproject


9
Điều này không hoạt động trên Windows 7. Lỗi thư mục không trống
Miguel Stevens

5
Bạn cần chỉ định cờ -d, điều đó cũng sẽ xóa các thư mục.
Stuart.Sklinar

hoặc -fR để đệ quy leo lên trên cùng và xóa thư mục
Dan Kanze

@Karthiga -rf là ​​các cờ / tùy chọn / tham số cho RM biết cách thực hiện thao tác xóa. rnói để tái diễn vào bất kỳ thư mục con nào và fnói để buộc xóa (không nhắc). -rflà một quy ước unix để chỉ định nhiều cờ / tùy chọn cùng một lúc.
Tim Coker

20

Tôi đã sử dụng GitBash để xóa thư mục de!

rm -r node_modules

Phải mất một thời gian để xóa tất cả mọi thứ, nhưng làm việc cho tôi!


Điều này làm việc cho tôi. Tôi đã sử dụng rimraf trước đó. rimraf đã không làm việc và tôi đã thử điều này.
Saiyaff Farouk

Điều này nên được bình luận hàng đầu. Không, cài đặt một cái gì đó chỉ để loại bỏ một cái gì đó .. Hoặc chỉ cần gõRD node_modules
David MacNeil

15

Xóa thư mục Netsted sâu như node_modules trong Windows

  1. lựa chọn 1

    Xóa bằng rimrafgói NPM

    • Mở dấu nhắc lệnh và thay đổi thư mục của bạn vào thư mục nơi node_modulesthư mục tồn tại.

    • Chạy

      rimraf node_modules

    • Thiếu rimraf ERROR sau đó Cài đặt

      npm install rimraf -g

    • Khi cài đặt hoàn tất, hãy chạy

      rimraf node_modules

  2. Tùy chọn 2 :

    Detele mà không cần cài đặt bất cứ điều gì

    • Tạo một thư mục có tên testtrong bất kỳ Drive nào

      robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

    • xóa thư mục testFolderToDeletevì cả hai đều trống

Tại sao đây là một vấn đề trong windows?

Một trong những cấu trúc thư mục lồng nhau sâu là node_modules, Windows không thể xóa thư mục vì tên của nó quá dài . Để giải quyết vấn đề này, giải pháp dễ dàng, cài đặt mô-đun nút RimRaf


Error: EPERM: operation not permitted
Travis Heeter

1
Đã sửa: Tôi phải khởi động lại máy tính. Một cái gì đó đang sử dụng node_modules, nhưng nó đã cho tôi một lỗi cho phép.
Travis Heeter

8

Hãy thử mã Visual Studio

Sau khi thử nhiều giải pháp tôi thấy cái này khá đơn giản. chỉ cần mở dự án trong mã Visual và xóa nó. Giao diện người dùng có thể đóng băng trong vài giây nhưng chắc chắn nó sẽ hoạt động. Tôi thử nghiệm bằng cách sử dụng nhiều thư mục node_modules kích thước lớn với nó

nhập mô tả hình ảnh ở đây

Cảm ơn


Công việc kỳ lạ !! :) Tôi đã cố xóa nó ngay cả trong chế độ An toàn, thậm chí đã sử dụng sudo sunhưng không có gì giúp được. BTW, tôi đang chạy trên OSX, điều này chưa bao giờ xảy ra với tôi cho đến khi tôi nâng cấp lên Mojave.
forloop

6

Bạn có thể sử dụng Git Bash để xóa thư mục:

ví dụ: c: \ users \ stu \ dự án \ mynodeproject

rm / c / users / stu / dự án / mynodeproject -rfd


5

Tôi đã có một vấn đề tương tự và RD không hoạt động, vì một số lý do không rõ.

NPM có thể thoát khỏi mớ hỗn độn của chính nó, vì vậy nếu bạn làm npm uninstall [module-name]cho mỗi thư mục trong node_modules, bạn sẽ thoát khỏi chúng.

(Tôi sẽ tìm cách lặp lại đợt này sau, cho những người có nhiều phụ thuộc.)


5
  1. npm install -g remove-node-modules
  2. cd để root và remove-node-modules
  3. hoặc là remove-node-modules path/to/folder

Nguồn:

https://github.com/j-quelly/node-cleanup


1
Xin vui lòng không chỉ cung cấp một liên kết chỉ trả lời. Ít nhất là thêm một số lời giải thích.
cfi

4

đơn giản chỉ cần chạy cho windows Tôi chưa thử nghiệm nó cho các hệ điều hành khác

rm -r node_modules

trong thực tế, bạn có thể xóa bất kỳ thư mục với điều này.

như rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

chỉ cần mở gitbash di chuyển đến thư mục gốc và chạy lệnh này

Hy vọng điều này sẽ giúp.

Cảm ơn, Ajay Kotnala


2

Trên Windows, sử dụng Total Commander, tất cả những gì bạn phải làm là chọn thư mục nhấp shift+ delete. Đừng quên shiftchìa khóa.


Đây là giải pháp tốt nhất! TC xóa thư mục không có trục trặc và nó thực sự rất nhanh
Marina Dunst

2

Bất kỳ trình quản lý tệp nào cũng cho phép tránh các sự cố như vậy, ví dụ: Far Manager

nhập mô tả hình ảnh ở đây


2
Tôi đã không thấy bất cứ ai sử dụng giao diện đó trong hơn 10 năm nay .. J đã làm cho tôi một ngày.
Rikki

2

Tôi chỉ thực hiện del node_modules trong thư mục dự án của mình trên PowerShell, nó sẽ hỏi bạn nếu bạn muốn xóa nó và thư mục con của nó, chỉ cần nhấn 'Y' và đó là nó


Đơn giản một. Cảm ơn bạn
estin nắng

... \ node_modules có con và tham số Recurse không được chỉ định. Nếu bạn tiếp tục, tất cả trẻ em sẽ được gỡ bỏ với các mục. Bạn có chắc chắn muốn tiếp tục? [Y] Có [A] Có cho tất cả [N] Không [L] Không cho tất cả [S] Tạm dừng [?] Trợ giúp (mặc định là "Y"): Yrd: Thư mục C: \ ... \ node_modules \ ngx -color-picker \ dist không thể xóa được vì nó không trống. nút thứ_modules -recurse
AUSTX_RJL

1
nút thứ_modules -recurse
AUSTX_RJL

@AUSTX_RJLrd cũng hoạt động, nhưng tôi chưa bao giờ gặp sự cố với del node_modules .. có dây, nhưng tnx có cách nào khác để xóa một cách khác trong PS
Roy.B

2

Đã thử tất cả mọi thứ nhưng không làm việc. Tất cả các phương pháp trên không làm gì cả. Cuối cùng tôi đã có thể xóa qua VSCode.

  1. Chỉ cần mở thư mục gốc của bạn với VSCode.
  2. Chọn node_modulesthư mục và xóa.
  3. Lợi nhuận. (Nó sẽ mất few millisecondsđể xóa.)

VSCode-xóa.png


2

Tôi đã tạo một mục ngữ cảnh Windows để xóa nhanh nút_modules hoặc các thư mục khác. Tôi sử dụng nó khi Windows không xóa một thư mục vì một số ký tự không hợp lệ trong đường dẫn thư mục.

CÀI ĐẶT THẾ NÀO?

  1. Cài đặt rimraf =>npm install rimraf -g

  2. Tạo một tệp mới có tên delete.bat, đặt nội dung như bên dưới và sao chép nó vàoc:\windows\system32\

    xóa.bat:

 @ECHO OFF
 ECHO.
 ECHO %CD% 
 ECHO.
 ECHO Are you sure to delete the folder with Rimraf?
 PAUSE
 SET FOLDER=%CD%
 CD /

 rimraf "%FOLDER%"

 rem DEL /F/Q/S "%FOLDER%" > NUL
 rem RMDIR /Q/S "%FOLDER%"

 EXIT
  1. Chạy tệp xóa nhanh.reg để nhập vào sổ đăng ký.

    Làm xong!

kết quả cuối cùng


1

Một giải pháp mà tôi sử dụng:

(Tôi muốn tránh cài đặt tiện ích mở rộng mới (rimraf) khi làm việc với môi trường CI.)

  1. A) Đổi tên gói.json thành một cái gì đó khác. B) Đặc biệt trên CI - sau khi cài đặt npm, tôi thường xóa tệp thay vì đổi tên, nhưng nếu bạn cần, bạn không phải làm điều này. Đó là sự lựa chọn của bạn.
  2. chạy npm init- điều này sẽ tạo ra một sản phẩm nàopackages.json tập tin (không phụ thuộc)
  3. chạy npm prune- cái này sẽ khớp với node_modules với phần phụ thuộc củapackages.json - hiện đang trống do kết quả của bước # 2.
  4. Nếu bạn đã chọn # 1.A. bước, xóa cái mới được tạo packages.jsonvà đổi tên ban đầu packages.jsontrở lại tên ban đầu của nó.

1

Nó quá dễ.

Chỉ cần xóa tất cả các thư mục bên trong node_modules và sau đó xóa thư mục node_module thực tế.

Điều này làm việc cho tôi. May mắn nhất....


Thành thật mà nói, đây là cách nhanh hơn nhưng cần rất nhiều kiên nhẫn. Thậm chí tốt hơn nếu bạn xóa một vài thư mục cùng một lúc.
Santosh

1

Trên Windows, giải pháp của tôi là sử dụng rmdirlệnh :

rd /S .\node_modules\

Nếu nó thất bại lần đầu tiên - hãy thử một lần nữa. Đồng thời kiểm tra xem bạn có đang chạy các tập lệnh hiện đang sử dụng các mô-đun ( npm run servehoặc tương tự) không.


0

Từ giao diện của bài viết MSDN này , có vẻ như bây giờ bạn có thể bỏ qua hạn chế MAX_PATH trong Windows 10 v1607 (AKA 'cập nhật kỷ niệm') bằng cách thay đổi giá trị trong sổ đăng ký - hoặc thông qua Chính sách nhóm


0

Chỉ cần sử dụng powershell ..

Chạy powershell và cd vào thư mục cha và sau đó:

rm [yourfolder]

như trong:

rm node_modules

0

Tôi đang ở trên windows 10 và tôi không thể xóa các thư mục với thông báo "thư mục không emtpy". Cả rimraf lẫn rm -rf hoạt động.

Sao chép một tệp văn bản trống vào mỗi thư mục duy nhất đã thực hiện thủ thuật - Tôi đã có thể xóa thư mục node_modules hoàn chỉnh.


0

Đôi khi, ngay cả khi bạn cài đặt rimraftrên toàn cầu, bạn có thể có một cục bộrimraf phụ thuộc (SASS thường có nó). Trong trường hợp này tôi sẽ chạy các lệnh sau:

Thực hiện theo 2 bước đầu tiên như usagidon khuyến nghị, nếu bạn gặp sự cố hoặc lỗi, hãy thử

npm uninstall rimraf & rimraf node_modules

điều này sẽ xóa cục bộ rimrafvà sử dụng toàn cục


0

Không liên quan chính xác, nhưng vì đây là bài đăng đầu tiên tôi tìm thấy trong khi tìm kiếm một giải pháp tương tự, tôi nghĩ rằng nó đáng để đăng ở đây.

Tôi đã gặp phải các vấn đề về quyền trên Windows 10 khi cố gắng xóa thư mục node_modules của mình sau khi thất bại trong việc cài đặt electron-redux. Có vẻ như electron-redux đã thêm @types vào node_modules của tôi, vốn đã được thiết lập quyền không chính xác.

rimraf không hoạt động vì nó vẫn gặp vấn đề về sự cho phép.

Tôi đã kết thúc việc đổi tên node_modules sau đó xóa đơn giản.


0

Được rồi, vấn đề của tôi là tôi đã có thư mục .bin bên trong node_modules và tôi không thể xóa nó, tôi đã thử tất cả các giải pháp trên cho cùng nhưng không có gì hoạt động.

Lỗi lặp lại là "bạn không có quyền xóa thư mục hoặc nó đã bị một số chương trình khác sử dụng".

Giải pháp mà tôi tìm thấy "Tôi đã cài đặt Antivirus trên máy tính của mình, điều này vô tình sử dụng các tệp từ thư mục node_modules".

Tôi đã gỡ cài đặt phần mềm chống vi-rút hoặc bạn có thể thay đổi cài đặt quyền từ tùy chọn cài đặt chống vi-rút (tùy thuộc vào loại phần mềm chống vi-rút nào). Bây giờ tôi có thể xóa thư mục node_modules.


0

Những gì làm việc cho tôi là:

  1. đã đóng bảng điều khiển quản lý nút
  2. đã đóng môi trường dev (mã studio hình ảnh) bạn đang ở.
  3. sau đó xóa node_modules

    npm install rimraf -g 
    rimraf node_modules

0

Cách PowerShell:

PS > rm -r -force node_modules

# The same, but without using aliases
PS > Remove-Item -Recurse -Force node_modules

Và nếu bạn muốn xóa mọi node_modulesthư mục con:

Lưu ý Có khả năng nguy hiểm vì nó xóa đệ quy, hãy chắc chắn về những gì bạn đang làm ở đây

PS > dir -Path . -Filter node_modules -recurse | foreach {echo $_.fullname; rm -r -Force $_.fullname}

0

Bạn có thể sử dụng gói npm khác dành riêng cho mục đích này. Bằng cách cài đặt nó cục bộ trong thư mục bằng cách sử dụng

npm i rm-node-modules-recur

Nếu bạn muốn bạn cũng có thể cài đặt nó trên toàn cầu với -g switch.

Nếu được cài đặt cục bộ, bạn có thể gọi tệp nhị phân từ thư mục hiện tại node_modules.bin \ bằng cách sử dụng

 .\node_modules\.bin\rmnodes "<top level directory within quotes>"

Nếu bạn chọn cài đặt toàn cầu, chỉ cần sử dụng

rmnodes "<top level directory within quotes>"

và đó là nó .. gói này cuối cùng sẽ xóa nút_modules khỏi tất cả các thư mục con theo cách đệ quy (trong trường hợp của tôi là 60 thư mục lẻ) một cách dễ dàng. tham khảo ảnh chụp kèm theo. sử dụng rm-nút-mô-đun-recur


-1

Nâng cao một chút nhịp cho nhiều thư mục ...

Nếu bạn có một thư mục dự án có nhiều 'bản dựng' có chứa 'node_module'. Giống:

C:/Project/build-1/node_modules
C:/Project/build-2/node_modules
C:/Project/build-3/node_modules
C:/Project/build-4/node_modules

Bạn muốn xóa tất cả các thư mục bắt đầu bằng "xây dựng"

! Đầu tiên cài đặt nodejsrimraf như đề xuất ở trên!

Sau đó đi đến đường dẫn với dự án và chạy lệnh PowerShell

cd  C:/Project/
Get-ChildItem build* | foreach {rimraf -Path $_.FullName}

Nó sẽ mất một chút


-1

Bạn có thể thực hiện lô đơn giản dựa trên câu trả lời @ mike-caron để bạn không cần phải nhập toàn bộ robocopylệnh mỗi lần thay vì chỉ nhập đường dẫn đến thư mục đã chọn:

@echo off
ECHO What Directory would you like to empty?
ECHO Current path: %cd%
SET /p UserInputPath=Input relative path to directory:
ROBOCOPY /MIR empty_dir %cd%\%UserInputPath% > NUL
PAUSE

Ở đây bạn đang sử dụng thư mục trống có tên là void_dir trong robocopylệnh cần nằm trong cùng thư mục với tệp bó để làm việc này. Sau khi tập tin bó hoàn thành công việc của nó, cả thư mục đã chọn và thư mục blank_dir sẽ trống để bạn có thể xóa chúng.

Tôi đã tạo một tệp bó đơn giản để tạo thư mục trống và sau khi robocopylệnh được thực thi sẽ xóa cả thư mục trống và thư mục đã chọn để điều duy nhất bạn cần làm là nhập đường dẫn đến thư mục đã chọn mà bạn muốn xóa. Thật nhanh chóng và thiết thực nếu bạn không muốn cài đặt những thứ như rimraf . Bạn có thể tải xuống tại đây https://github.com/5imun/WinCleaner


Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
SherylHohman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.