Jak usunąć node_modules - głęboko zagnieżdżony folder w systemie Windows

229

Podczas próby usunięcia katalogu node_modules utworzonego przez npm install:

Nazwy plików źródłowych są większe niż obsługiwane przez system plików. Spróbuj przejść do lokalizacji o krótszej nazwie ścieżki lub spróbuj zmienić nazwę na krótszą nazwę (nazwy) przed próbą wykonania tej operacji

Próbowałem także shift+ deletei nadal mam ten sam problem.

leoh
źródło
try renaming to shorter name(s) before attempting this operation
SLaks
3
Dzięki za sugestię, @ SLaks! Powinienem wspomnieć, że ja też tego próbowałem, ale pliki i katalogi są liczne i głębokie, ma takie rzeczy jak C: \ Users \ moja_nazwa_użytkownika \ projs \ backend \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_modules \ optipng-bin \ node_modules \ bin-wrapper \ node_modules \ bin-check \ node_modules \ executable \ node_modules \ meow \ node_modules \ camelcase-keys \ node_modules \ ... i to trwa. Ręczne
zmienianie
1
Webstorm może usunąć wszystko.
ozzimpact
Użyłem narzędzia Long Path Fixer i pomyślnie usunąłem ten folder „.meteor”. ( long-path-fixer.en.softonic.com )
Vu Doan
RUN INSTALL, npm install rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Odpowiedzi:

437

Ponieważ jest to najlepszy wynik w Google, to działało dla mnie:

Zainstaluj RimRaf:

npm install rimraf -g

A w folderze projektu usuń folder node_modules za pomocą:

rimraf node_modules

Jeśli chcesz rekurencyjnie usunąć:

rimraf .\**\node_modules

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

blub
źródło
nie działa tutaj: „Błąd: ENOTEMPTY, katalog nie jest pusty”. i podany link nie działa!
olefrank
7
Jestem autorem posta na blogu. @olefrank: zdarza się to zwykle, gdy próbujesz usunąć cały folder (nie tylko moduły_węzła), a także jeśli zdarza się, że folder jest otwarty w oknie Eksploratora. usagidon, dzięki za połączenie oryginalnego źródła.
Nikola
2
To nie będzie przydatne, jeśli nie masz NodeJS lub próbujesz usunąć globalne moduły NodeJS po odinstalowaniu (dlatego musiałem użyć robocopy)
Zorgatone
1
Dodam tutaj moje 2 centy, aby były bardziej szczegółowe na pytanie. Możesz usunąć wszystkie foldery node_modules rekurencyjnie (używając wzorca globowania) w następujący sposób:rimraf .\**\node_modules
Artif3x
1
Commnent @ Artif3x należy oznaczyć jako najlepszą odpowiedź loll! dzięki za wskazówkę dotyczącą rekurencyjnego usuwania :-)
Juan Stoppa
111

Po prostu zrobiłem to za pomocą Winrara, może to wydawać się dziwnym rozwiązaniem, ale działa bardzo dobrze.

  • kliknij node_modulesfolder prawym przyciskiem myszy
  • wybierz Add to archive ...z menu.
  • Zostanie otwarte okno dialogowe Winrar
  • po prostu zaznacz opcję delete files after archiving
  • Nie zapomnij usunąć node_modules.rar po zakończeniu.


[AKTUALIZACJA] Działa to również z 7Zip


Eymen Elkum
źródło
7
wow, to jest podstępne! +1 Używałem robocopy, chociaż najwyraźniej zostało to naprawione za pomocą nowego npm lub czegoś takiego.
erp
1
@ChrisS Jak to działa z 7Zip? Zwłaszcza podczas korzystania z GUI!
bennos
4
W 2016 r. (A zwłaszcza w 2018 r.) Nie trzeba być tak sprytnym, aby usuwać kilka plików.
webelo
73

USUŃ tylko przy użyciu polecenia DOS bez instalacji:

Utwórz pusty „test” folderu na dysku C lub D i użyj następującej komendy DOS

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

Po wykonaniu powyższego polecenia folder będzie pusty, teraz możesz go usunąć.

Nie martw się, twój folder testowy zawsze będzie pusty, więc możesz go usunąć w dowolnym momencie.

Ali Adravi
źródło
12
najlepsza odpowiedź, ponieważ nie trzeba niczego instalować
luschn
1
Po wypróbowaniu rimrafa i dodaniu folderu sieciowego jest to najczystsze rozwiązanie, jakie znalazłem. Dzięki za udostępnienie tego.
danyim
1
świetne rozwiązanie; łatwo.
bob.mazzo
2
Zrobiłem drobne addion: > NUL. Kiedy właśnie tego spróbowałem, konsola sterowała przepustnicą i zajęło to 15 minut lub więcej. Po przekierowaniu zakończyło się około 2
Mike Caron
To zabawne, że aby usunąć niektóre pliki JS, potrzebujesz jeszcze jednej biblioteki JS.
linuxunil
30

Możesz użyć Git Bash, aby usunąć folder:

przykład: c: \ users \ olefrank \ projects \ mynodeproject

rm -rf / c / users / olefrank / projects / mynodeproject

olefrank
źródło
9
Nie działało to w systemie Windows 7. Błąd pustego katalogu
Miguel Stevens
5
Musisz także podać flagę -d, która spowoduje również usunięcie katalogów.
Stuart.Sklinar 20.04.16
lub -fR, aby rekurencyjnie wspiąć się na górę i usunąć folder
Dan Kanze
@Karthiga -rf to flagi / opcje / parametry, które mówią RM, jak wykonać operację usuwania. rmówi o ponownym przejściu do dowolnego podkatalogu i fmówi o wymuszeniu usunięcia (nie pytaj). -rfto konwencja unixowa, która określa wiele flag / opcji jednocześnie.
Tim Coker
20

Użyłem GitBash, aby usunąć folder!

rm -r node_modules

Usunięcie wszystkiego zajęło trochę czasu, ale zadziałało dla mnie!

Bruno DM
źródło
To zadziałało dla mnie. Używałem wcześniej rimrafa. rimraf nie działał i próbowałem tego.
Saiyaff Farouk
To powinien być najlepszy komentarz. Nie, instalowanie czegoś tylko po to, aby coś usunąć. Alternatywnie, po prostu wpiszRD node_modules
David MacNeil
15

Usuń Deep Netsted Folder jak node_modules w Windows

  1. opcja 1

    Usuń za pomocą rimrafpakietu NPM

    • Otwórz wiersz polecenia i zmień katalog na folder, w którym node_modulesistnieje folder.

    • Biegać

      rimraf node_modules

    • Brak rimraf ERROR, a następnie Install

      npm install rimraf -g

    • Po zakończeniu instalacji uruchom

      rimraf node_modules

  2. Opcja 2 :

    Detele bez instalowania czegokolwiek

    • Utwórz folder o nazwie testna dowolnym Dysku

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

    • usuń folder testi FolderToDeleteoba są puste

Dlaczego jest to problem w systemie Windows?

Jedną z głęboko zagnieżdżonych struktur folderów jest moduł_węzła, system Windows nie może usunąć folderu, ponieważ jego nazwa jest zbyt długa . Aby rozwiązać ten problem, łatwe rozwiązanie, zainstaluj moduł węzła RimRaf

Jinna Balu
źródło
Error: EPERM: operation not permitted
Travis Heeter,
1
Naprawiono: Musiałem ponownie uruchomić komputer. Coś się zużywało node_modules, ale dawał mi błąd uprawnień.
Travis Heeter
8

Wypróbuj kod Visual Studio

Po wypróbowaniu wielu rozwiązań uważam, że jest to dość proste. wystarczy otworzyć projekt w kodzie wizualnym i usunąć go. interfejs użytkownika może się zawiesić na kilka sekund, ale na pewno zadziała. Testuję przy użyciu wielu dużych folderów node_modules z nim

wprowadź opis zdjęcia tutaj

Dzięki

Umar Abbas
źródło
Dziwnie działa !! :) Próbowałem go usunąć nawet w trybie awaryjnym, nawet używany, sudo suale nic nie pomaga. BTW, działam na OSX, co nigdy mi się nie zdarzyło, dopóki nie zaktualizowałem do Mojave.
forloop
6

Możesz użyć Git Bash, aby usunąć folder:

przykład: c: \ users \ stu \ projects \ mynodeproject

rm / c / users / stu / projects / mynodeproject -rfd

Stuart.Sklinar
źródło
5

Miałem podobny problem i RD nie działał z nieznanego powodu.

NPM może jednak pozbyć się własnego bałaganu, więc jeśli zrobisz to npm uninstall [module-name]dla każdego katalogu w module node_modules, pozbędziesz się go.

(Później sprawdzę, jak zapętlić partię, dla tych, którzy mają wiele zależności).

Chris
źródło
5
  1. npm install -g remove-node-modules
  2. cd do rootowania i remove-node-modules
  3. lub remove-node-modules path/to/folder

Źródło:

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

j_quelly
źródło
1
Proszę nie podawać tylko linku odpowiedzi. Dodaj przynajmniej wyjaśnienie.
cfi
4

po prostu uruchom dla systemu Windows Nie przetestowałem go dla innych systemów operacyjnych

rm -r node_modules

w ten sposób możesz usunąć dowolny folder.

jak rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

po prostu otwórz gitbash przenieś do katalogu głównego folderu i uruchom to polecenie

Mam nadzieję, że to pomoże.

Dzięki, Ajay Kotnala

Ajay Kotnala
źródło
2

W systemie Windows, używając Total Commander, wszystko co musisz zrobić, to wybrać folder kliknij shift+ delete. Nie zapomnij o shiftkluczu.

Andrzej Gis
źródło
To najlepsze rozwiązanie! TC usuwa folder bez czkawek i jest bardzo szybki
Marina Dunst
2

Każdy menedżer plików pozwala uniknąć takich problemów, np. Far Manager

wprowadź opis zdjęcia tutaj

Veniamin
źródło
2
Nie widziałem nikogo, kto używałby tego rodzaju interfejsu od ponad 10 lat. J zrobił mój dzień.
Rikki
2

Po prostu wykonuję del node_modules w moim folderze projektu w PowerShell, zapyta cię, czy chcesz go usunąć i jego folder potomny , po prostu naciśnij „Y” i to wszystko

Roy.B
źródło
Prosty. Dziękuję
estin słoneczny
... \ node_modules ma elementy potomne i parametr Recurse nie został określony. Jeśli będziesz kontynuować, wszystkie dzieci zostaną usunięte z tym elementem. Jesteś pewien, że chcesz kontynuować? [T] Tak [A] Tak dla Wszystkich [N] Nie [L] Nie dla Wszystkich [S] Zawieś [?] Pomoc (domyślnie „Y”): T: Katalog C: \ ... \ node_modules \ ngx -kolor-picker \ dist nie może zostać usunięty, ponieważ nie jest pusty. rd node_modules -recurse
AUSTX_RJL
1
rd node_modules -recurse
AUSTX_RJL
@AUSTX_RJL rd również działa, ale nigdy nie miałem problemu z del_od_modules .. podłączony, ale tnx w jakikolwiek sposób na inny sposób usuwania w PS
Roy.B
2

Próbowałem wszystkiego, ale nie działało. Wszystkie powyższe metody nic nie zrobiły. Nareszcie mogłem usunąć za pomocą VSCode.

  1. Wystarczy otworzyć folder główny za pomocą VSCode.
  2. Wybierz node_modules folder i usuń.
  3. Zysk. (To zajmie few millisecondsusunięcie.)

VSCode-delete.png

Junaid Atari
źródło
2

Zrobiłem kontekstowy element systemu Windows, aby szybko usunąć moduły_węzła lub inne foldery. Używam go, gdy Windows nie usuwa folderu z powodu nieprawidłowych znaków w ścieżce katalogu.

JAK ZAINSTALOWAĆ?

  1. Zainstaluj rimraf =>npm install rimraf -g

  2. Utwórz nowy plik o nazwie delete.bat, ustaw zawartość jak poniżej i skopiuj doc:\windows\system32\

    delete.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. Uruchom fast-delete.reg plik , aby zaimportować do rejestru.

    Gotowe!

ostateczny wynik

Alper Ebicoglu
źródło
1

Jedno rozwiązanie, którego używam:

(Wolałbym unikać instalowania nowego rozszerzenia (rimraf) podczas pracy ze środowiskami CI).

  1. A) Zmień nazwę paczek.json na coś innego. B) Specjalnie w CI - po instalacji npm zwykle usuwam plik zamiast zmiany jego nazwy, ale jeśli go potrzebujesz, nie musisz tego robić. To Twój wybór.
  2. uruchom npm init- spowoduje to utworzenie pustego packages.jsonpliku (brak zależności)
  3. run npm prune- to dopasuje node_modules do sekcji zależności w packages.json- która jest teraz pusta w wyniku kroku # 2.
  4. Jeśli wybrałeś # 1.A. krok, usuń nowo utworzony packages.jsoni zmień nazwę oryginału z packages.jsonpowrotem na pierwotną nazwę.
Rikki
źródło
1

To jest za łatwe.

Po prostu usuń wszystkie foldery w module node_modules, a następnie usuń aktualny folder node_module.

To działa dla mnie. Powodzenia…

Priyanka
źródło
Szczerze mówiąc, jest to szybszy sposób, ale potrzeba dużo cierpliwości. Jeszcze lepiej, jeśli usuniesz kilka folderów na raz.
Santosh
1

W systemie Windows moje przejście do rozwiązania polega na użyciu rmdirpolecenia :

rd /S .\node_modules\

Jeśli zawiedzie za pierwszym razem - spróbuj jeszcze raz. Sprawdź także, czy masz uruchomione skrypty korzystające obecnie z modułów ( npm run servelub podobnych).

korun
źródło
0

Na podstawie wyglądu tego artykułu MSDN wygląda na to , że można teraz ominąć ograniczenie MAX_PATH w systemie Windows 10 v1607 („rocznicowa aktualizacja” AKA), zmieniając wartość w rejestrze - lub za pomocą zasad grupy

moloko
źródło
0

Wystarczy użyć PowerShell ..

Uruchom program PowerShell i cd do folderu nadrzędnego, a następnie:

rm [yourfolder]

jak w:

rm node_modules
Darren Ford
źródło
0

Korzystam z systemu Windows 10 i nie mogę usunąć folderów z komunikatem „katalog nie jest pusty”. Ani rimraf, ani rm -rf nie działały.

Skopiowanie pustego pliku tekstowego do każdego folderu pomogło - udało mi się usunąć cały folder node_modules.

ralusnom
źródło
0

Czasami, nawet jeśli instalujesz rimrafglobalnie, możesz mieć lokalną rimrafzależność (SASS zwykle ją ma). W takim przypadku uruchomiłbym następujące polecenia:

Wykonaj pierwsze 2 kroki zgodnie z zaleceniami usagidon , jeśli masz problemy lub błędy, spróbuj

npm uninstall rimraf & rimraf node_modules

spowoduje to usunięcie lokalnego rimrafi użycie globalnego

użytkownik 2869931
źródło
0

Nie do końca powiązane, ale ponieważ jest to pierwszy post, który znalazłem w poszukiwaniu podobnego rozwiązania, myślę, że warto go tutaj zamieścić.

Miałem problemy z uprawnieniami w systemie Windows 10, próbując usunąć mój folder node_modules po nieudanej próbie zainstalowania redronu elektronowego. Wygląda na to, że elektron-redux dodał @types do moich modułów node_mode, które miały niepoprawne uprawnienia.

rimraf nie działał, ponieważ nadal występowały problemy z uprawnieniami.

Skończyło się na zmianie nazwy node_modules, wtedy zadziałało proste usunięcie.

Jake Conniff
źródło
0

Okej, więc mój problem polegał na tym, że miałem folder .bin w module node_modules i nie byłem w stanie go usunąć, wypróbowałem wszystkie powyższe rozwiązania dla tego samego, ale nic nie działało.

Błąd, który się powtarzał, brzmiał: „nie masz uprawnień do usunięcia folderu lub został on wykorzystany przez inny program”.

Rozwiązanie, które znalazłem „Miałem zainstalowany program antywirusowy na moim komputerze, który nieświadomie korzystał z plików z folderu node_modules”.

Odinstalowałem program antywirusowy lub możesz zmienić ustawienie uprawnień z opcji ustawienia antywirusa (zależy od tego, jaki program antywirusowy masz). Teraz mogę usunąć folder node_modules.

Gaurav Bhatt
źródło
0

Dla mnie zadziałało:

  1. zamknął konsolę menedżera węzłów
  2. zamknąłeś środowisko programistyczne Atom (Visual Studio Code), w którym jesteś.
  3. następnie usuń moduły_węzła

    npm install rimraf -g 
    rimraf node_modules
Sumanth
źródło
0

Sposób PowerShell:

PS > rm -r -force node_modules

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

A jeśli chcesz usunąć wszystkie node_modulesw podkatalogach:

Uwaga Potencjalnie niebezpieczne, ponieważ usuwa się rekurencyjnie, upewnij się, co tu robisz

PS > dir -Path . -Filter node_modules -recurse | foreach {echo $_.fullname; rm -r -Force $_.fullname}
dgellow
źródło
0

Możesz użyć innego pakietu npm specjalnie do tego celu. Instalując go lokalnie w folderze za pomocą

npm i rm-node-modules-recur

Jeśli chcesz, możesz również zainstalować go globalnie za pomocą przełącznika -g.

Jeśli zainstalowany lokalnie, można wywołać plik binarny z bieżącego katalogu node_modules.bin \ przy użyciu

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

Jeśli wybierzesz instalację globalną, po prostu użyj

rmnodes "<top level directory within quotes>"

i to wszystko .. ten pakiet z łatwością usunie rekordy node_modules ze wszystkich podkatalogów (w moim przypadku około 60 nieparzystych folderów). skieruj załączoną migawkę. using rm-node-modules-recur

Maneesh Parihar
źródło
-1

Przejdź trochę rytmu do wielu folderów ...

Jeśli masz folder projektu z wieloma „kompilacjami”, który zawiera „moduł_węzła”. Lubić:

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

Chcesz usunąć wszystkie foldery zaczynające się od „build”

! Najpierw zainstaluj nodejs i rimraf jak sugerowano powyżej!

Następnie przejdź do ścieżki z projektem i uruchom polecenie PowerShell

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

To zajmie podstęp

Aidar Gatin
źródło
-1

Możesz utworzyć prostą partię w oparciu o odpowiedź @ mike-caron, więc nie trzeba za każdym razem wpisywać całego robocopypolecenia, a jedynie wpisać ścieżkę do wybranego folderu:

@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

Tutaj używasz pustego katalogu o nazwie empty_dir w robocopypoleceniu, który musi znajdować się w tym samym katalogu z plikiem wsadowym, aby to zadziałało. Po zakończeniu pliku wsadowego zarówno wybrany katalog, jak i pusty_katalog katalog będą puste, aby można je było usunąć.

Zrobiłem prosty plik wsadowy, który tworzy pusty folder, a po wykonaniu robocopypolecenia usuwa zarówno pusty folder, jak i wybrany folder, więc wystarczy, że podasz ścieżkę do wybranego folderu, który chcesz usunąć. Jest szybki i praktyczny, jeśli nie chcesz instalować takich rzeczy jak rimraf . Możesz go pobrać tutaj https://github.com/5imun/WinCleaner

Šime
źródło
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
SherylHohman,