Come eliminare node_modules - Deep Nested Folder in Windows


229

Dopo aver provato a rimuovere la directory node_modules creata da npm install:

I nomi dei file di origine sono più grandi di quelli supportati dal file system. Prova a spostarti in una posizione che ha un nome percorso più breve o prova a rinominare il nome (i) più breve prima di tentare questa operazione

Ho anche provato shift+ deletee ho ancora lo stesso problema.


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

3
Grazie per il tuo suggerimento, @ SLaks! Avrei dovuto dire che ho provato anche quello, ma i file e le directory sono molti e profondi, ha cose come C: \ Users \ nome_utente_programma \ projs \ backend \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_modules \ optipng-bin \ node_modules \ bin-wrapper \ node_modules \ bin-check \ node_modules \ eseguibile \ node_modules \ meow \ node_modules \ camelcase-keys \ node_modules \ ... e continua. Non è pratico rinominare i file manualmente e spero che ci saranno modi più semplici senza scrivere un programma
leoh

1
Webstorm può eliminare tutto.
ozzimpact,

Ho usato lo strumento Long Path Fixer e ho rimosso con successo questa cartella ".meteor". ( long-path-fixer.en.softonic.com )
Vu Doan

RUN INSTALL, npm install rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Risposte:


438

Dal momento che questo è il miglior risultato di Google, questo è ciò che ha funzionato per me:

Installa RimRaf:

npm install rimraf -g

E nella cartella del progetto eliminare la cartella node_modules con:

rimraf node_modules

Se si desidera eliminare in modo ricorsivo:

rimraf .\**\node_modules

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


non funziona qui: "Errore: ENOTEMPTY, directory non vuota". e il link fornito non funziona!
Olejank,

7
Sono l'autore del post sul blog. @olefrank: questo tende ad accadere quando si tenta di eliminare l'intera cartella (non solo node_modules) e anche se si ha la cartella aperta in una finestra di Explorer. usagidon, grazie per aver collegato la fonte originale.
Nikola,

2
Questo non sarà utile se non hai NodeJS o stai cercando di eliminare i moduli globali di NodeJS dopo averlo disinstallato (ecco perché ho dovuto usare
robocopy

1
Aggiungerò qui i miei 2 centesimi per essere un po 'più specifici alla domanda. Puoi eliminare tutte le cartelle node_modules in modo ricorsivo (usando il modello rimraf .\**\node_modules
globbing

1
Il commento di @ Artif3x dovrebbe essere contrassegnato come il miglior loll di risposta! grazie per il suggerimento per la cancellazione ricorsiva :-)
Juan Stoppa il

111

L'ho fatto semplicemente usando Winrar, può sembrare una strana soluzione ma funziona molto bene.

  • fare clic con il tasto destro sulla node_modulescartella
  • seleziona Add to archive ...dal menu.
  • Si apre la finestra di dialogo Winrar
  • basta selezionare l'opzione delete files after archiving
  • Non dimenticare di eliminare node_modules.rar al termine.


[AGGIORNAMENTO] Funziona anche con 7Zip



7
wow questo è subdolo! +1 Ho usato Robocopy anche se apparentemente questo è stato risolto con nuovi npm o qualcosa del genere.
Erp,

1
@ChrisS Come funziona con 7Zip? Soprattutto quando si utilizza la GUI!
bennos,

4
Nel 2016 (e in particolare nel 2018) non dovresti essere così intelligente per eliminare un mucchio di file.
webelo,

73

ELIMINA solo usando il comando DOS senza alcuna installazione:

Creare una cartella vuota "test" sull'unità C o D e utilizzare il seguente comando DOS

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

Dopo aver completato il comando sopra, la tua cartella sarà vuota, ora puoi eliminare la cartella.

Non preoccuparti, la cartella di prova sarà sempre vuota, quindi puoi eliminarla in qualsiasi momento.


12
miglior risposta, perché non è necessario installare nulla
luschn

1
Dopo aver provato rimraf e aver aggiunto una cartella di rete, questa è la soluzione più pulita che ho trovato. Grazie per averlo condiviso.
Danyim,

1
ottima soluzione; facile.
bob.mazzo

2
Ho appena fatto un minore addion: > NUL. Quando l'ho appena provato, la console stava accelerando e impiegava 15 minuti o più. Con il reindirizzamento in atto, è terminato in circa 2
Mike Caron,

È divertente che per eliminare alcuni file JS, sia necessaria un'altra libreria JS.
linuxunil,

30

Puoi usare Git Bash per rimuovere la cartella:

esempio: c: \ users \ olefrank \ projects \ mynodeproject

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


9
Questo non funzionava su Windows 7. Errore directory non vuota
Miguel Stevens,

5
È necessario specificare anche il flag -d, che eliminerà anche le directory.
Stuart.Sklinar,

o -fR per salire ricorsivamente verso l'alto ed eliminare anche la cartella
Dan Kanze,

@Karthiga -rf sono flag / opzioni / parametri che indicano all'RM come eseguire l'operazione di eliminazione. rdice di ricorrere in qualsiasi sottodirectory e fdice di forzare la cancellazione (non chiedere). -rfè una convenzione unix per specificare più flag / opzioni contemporaneamente.
Tim Coker,

20

Ho usato GitBash per rimuovere la cartella!

rm -r node_modules

Ci è voluto un po 'per eliminare tutto, ma ha funzionato per me!


Questo ha funzionato per me. Stavo usando rimraf prima. rimraf non ha funzionato e ho provato questo.
Saiyaff Farouk,

Questo dovrebbe essere il commento principale. No, installando qualcosa solo per rimuovere qualcosa .. In alternativa basta digitareRD node_modules
David MacNeil

15

Elimina la cartella Deep Netsted come node_modules in Windows

  1. opzione 1

    Elimina usando il rimrafpacchetto NPM

    • Aprire il prompt dei comandi e modificare la directory nella cartella in cui node_modulesesiste la cartella.

    • Correre

      rimraf node_modules

    • ERRORE rimraf mancante, quindi Installa

      npm install rimraf -g

    • Al termine dell'installazione, eseguire

      rimraf node_modules

  2. Opzione 2 :

    Detele senza installare nulla

    • Crea una cartella con nome testin qualsiasi Drive

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

    • elimina la cartella tested FolderToDeleteentrambi sono vuoti

Perché questo è un problema in Windows?

Una delle strutture di cartelle nidificate in profondità è node_modules, Windows non può eliminare la cartella poiché il suo nome è troppo lungo . Per risolvere questo, soluzione Easy, installare un modulo nodo RimRaf


Error: EPERM: operation not permitted
Travis Heeter,

1
Risolto: ho dovuto riavviare il mio computer. Qualcosa stava usando node_modules, ma mi stava dando un errore di autorizzazione.
Travis Heeter,

8

Prova il codice di Visual Studio

Dopo aver provato molte soluzioni trovo che questa sia piuttosto semplice. basta aprire il progetto in Visual code ed eliminarlo. l'interfaccia utente potrebbe bloccarsi per alcuni secondi, ma funzionerà sicuramente. Provo a utilizzare molte cartelle node_modules di grandi dimensioni con esso

inserisci qui la descrizione dell'immagine

Grazie


Funziona stranamente !! :) Ho provato a eliminarlo anche in modalità provvisoria, anche usato sudo suma niente aiuta. A proposito, sto correndo su OSX che non mi è mai successo fino a quando non ho effettuato l'aggiornamento a Mojave.
rimandare il

6

Puoi usare Git Bash per rimuovere la cartella:

esempio: c: \ utenti \ stu \ progetti \ mynodeproject

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


5

Ho avuto un problema simile e RD non ha funzionato, per qualche ragione sconosciuta.

NPM può sbarazzarsi del suo stesso casino, quindi se lo fai npm uninstall [module-name] per ogni directory in node_modules, ti sbarazzerai di loro.

(Cercherò come eseguire il loop batch in seguito, per coloro che hanno molte dipendenze.)



4

semplice solo per Windows non l'ho testato per altri sistemi operativi

rm -r node_modules

in effetti, puoi eliminare qualsiasi cartella con questo.

come rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

basta aprire gitbash per spostarsi sulla radice della cartella ed eseguire questo comando

Spero che questo possa aiutare.

Grazie Ajay Kotnala


2

Su Windows, utilizzando Total Commander non devi fare altro che selezionare la cartella fai clic su shift+ delete. Non dimenticare la shiftchiave.


Questa è la soluzione migliore! TC elimina la cartella senza singhiozzi ed è davvero veloce
Marina Dunst,

2

Qualsiasi gestore di file consente di evitare tali problemi, ad esempio Far Manager

inserisci qui la descrizione dell'immagine


2
Non vedevo nessuno usare quella sorta di interfaccia da più di 10 anni ormai. J ha fatto la mia giornata.
Rikki,

2

Faccio solo del node_modules nella cartella del mio progetto su PowerShell, ti chiederà se vuoi rimuoverlo e la sua cartella figlio, basta premere 'Y' e basta


Uno semplice. Grazie
estin sunny

... \ node_modules ha dei figli e il parametro Recurse non è stato specificato. Se continui, tutti i bambini verranno rimossi con l'oggetto. Sei sicuro di voler continuare? [Y] Sì [A] Sì a tutti [N] No [L] No a tutti [S] Sospendi [?] Guida (l'impostazione predefinita è "Y"): Y: Directory C: \ ... \ node_modules \ ngx -color-picker \ dist non può essere rimosso perché non è vuoto. secondo node_modules -recurse
AUSTX_RJL

1
secondo node_modules -recurse
AUSTX_RJL

Anche @AUSTX_RJL rd funziona, ma non ho mai avuto problemi con del node_modules .. cablato, ma tnx comunque per un altro modo di eliminarlo in PS
Roy.B

2

Ho provato tutto ma non ha funzionato. Tutti i metodi di cui sopra non hanno fatto nulla. Finalmente sono stato in grado di eliminare tramite VSCode.

  1. Basta aprire la cartella principale con VSCode.
  2. Seleziona la node_modulescartella ed elimina.
  3. Profitto. (Ci vorrà few millisecondsper eliminare.)

VSCode-delete.png


2

Ho creato un elemento di contesto di Windows per eliminare rapidamente node_modules o altre cartelle. Lo uso quando Windows non cancella una cartella a causa di alcuni caratteri non validi nel percorso della directory.

COME INSTALLARE?

  1. Installa rimraf =>npm install rimraf -g

  2. Crea un nuovo file chiamato delete.bat, imposta il contenuto come di seguito e copialo inc:\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. Esegui il file fast-delete.reg per importare nel registro.

    Fatto!

risultato finale


1

Una soluzione che utilizzo:

(Preferirei evitare l'installazione di una nuova estensione (rimraf) quando si lavora con ambienti CI.)

  1. A) Rinomina pacchetti.json con qualcos'altro. B) Specialmente su CI: dopo l'installazione di npm, di solito rimuovo il file invece di rinominarlo, ma se ne hai bisogno, non devi farlo. Questa e 'la tua scelta.
  2. esegui npm init: questo creerà un packages.jsonfile vuoto (nessuna dipendenza)
  3. run npm prune- questo abbinerà node_modules con la sezione delle dipendenze di packages.json- che ora è vuota come risultato del passaggio # 2.
  4. Se hai scelto # 1.A. passaggio, elimina il nuovo creato packages.jsone rinomina l'originale packages.jsoncon il nome originale.

1

È troppo facile.

Basta eliminare tutte le cartelle all'interno di node_modules e quindi eliminare l'attuale cartella node_module.

Questo funziona per me. Buona fortuna....


Onestamente, questo è il modo più veloce ma è necessaria molta pazienza. Ancora meglio se si eliminano alcune cartelle alla volta.
Santosh,

1

Su Windows il mio go to solution sta usando il rmdircomando :

rd /S .\node_modules\

Se fallisce la prima volta, prova ancora una volta. Controlla anche se hai degli script attualmente in esecuzione utilizzando i moduli ( npm run serveo simili).


0

Da questo aspetto di questo articolo MSDN , sembra che ora puoi bypassare la restrizione MAX_PATH in Windows 10 v1607 ("aggiornamento dell'anniversario" di AKA) modificando un valore nel registro o tramite Criteri di gruppo


0

Usa solo PowerShell ..

Esegui powershell e cd nella cartella principale e quindi:

rm [yourfolder]

come in:

rm node_modules

0

Sono su Windows 10 e non sono riuscito a eliminare le cartelle con il messaggio "directory not emtpy". Né rimrafrm -rf funzionato.

Copiare un file di testo vuoto in ogni singola cartella ha funzionato: sono stato in grado di eliminare la cartella node_modules completa.


0

A volte, anche se installi a rimraflivello globale, puoi avere un localerimraf dipendenza (di solito SASS). In questo caso avrei eseguito i seguenti comandi:

Segui i primi 2 passaggi come consigliato da Usagidon , se hai problemi o errori, prova

npm uninstall rimraf & rimraf node_modules

questo eliminerà local rimrafe utilizzerà quello globale


0

Non esattamente correlato, ma poiché questo è il primo post che ho trovato nella mia ricerca di una soluzione simile, penso che valga la pena pubblicare qui.

Stavo riscontrando problemi di autorizzazione su Windows 10 nel tentativo di eliminare la mia cartella node_modules dopo un tentativo fallito di installazione di electron-redux. Sembra che electron-redux abbia aggiunto @types al mio node_modules, con autorizzazioni impostate errate.

rimraf non ha funzionato in quanto ha riscontrato problemi di autorizzazione.

Ho finito per rinominare node_modules quindi una semplice eliminazione ha funzionato.


0

Ok, quindi il mio problema era che avevo la cartella .bin all'interno di node_modules e non ero in grado di eliminarlo, ho provato tutte le soluzioni sopra per lo stesso ma niente ha funzionato.

L'errore che si ripeteva era "non hai i permessi per cancellare la cartella o è stato usato da qualche altro programma".

Soluzione che ho trovato "Avevo installato Antivirus sul mio PC, che utilizzava inconsapevolmente i file dalla cartella node_modules".

Ho disinstallato l'antivirus o è possibile modificare le impostazioni di autorizzazione dall'opzione di impostazione dell'antivirus (dipende dall'antivirus in uso). Ora sono in grado di eliminare la cartella node_modules.


0

Ciò che ha funzionato per me è stato:

  1. chiusa la console di gestione dei nodi
  2. chiuso l'ambiente di sviluppo Atom (codice Visual Studio) in cui ci si trova.
  3. quindi eliminare node_modules

    npm install rimraf -g 
    rimraf node_modules

0

Il modo PowerShell:

PS > rm -r -force node_modules

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

E se vuoi eliminare tutti node_modulesnelle sottodirectory:

Nota Potenzialmente pericoloso poiché si elimina in modo ricorsivo, assicurarsi di ciò che si sta facendo qui

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

0

È possibile utilizzare un altro pacchetto npm appositamente per questo scopo. Installandolo localmente nella cartella usando

npm i rm-node-modules-recur

Se lo desideri, puoi anche installarlo a livello globale con l'opzione -g.

Se installato localmente, è possibile richiamare il file binario dalla directory corrente node_modules.bin \ using

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

Se hai scelto l'installazione globale, usa semplicemente

rmnodes "<top level directory within quotes>"

e questo è tutto .. questo pacchetto finirà per eliminare ricorsivamente node_modules da tutte le sottodirectory (nel mio caso circa 60 cartelle dispari) con facilità. fare riferimento all'istantanea allegata. usando rm-node-modules-recur


-1

Fai avanzare un po ' per più cartelle ...

Se hai una cartella di progetto con più 'build' che contiene 'node_module'. Piace:

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

Si desidera eliminare tutte le cartelle inizia con "build"

! Prima installa nodejs e rimraf come suggerito sopra!

Quindi vai al percorso con il progetto ed esegui il comando PowerShell

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

Ci vorrà un po '


-1

Puoi creare un semplice batch basato sulla risposta @ mike-caron, quindi non è necessario digitare ogni volta l'intero robocopycomando invece di inserire il percorso nella cartella selezionata:

@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

Qui si utilizza una directory vuota denominata empty_dir nel robocopycomando che deve trovarsi nella stessa directory con il file batch affinché funzioni. Al termine del lavoro del file batch, sia la directory selezionata che empty_dir saranno vuote in modo da poterle rimuovere.

Ho creato un semplice file batch che crea una cartella vuota e dopo l' robocopyesecuzione del comando rimuove sia la cartella vuota che la cartella selezionata in modo che l'unica cosa che devi fare sia inserire il percorso della cartella selezionata che desideri eliminare. È veloce e pratico se non vuoi installare cose come rimraf . Puoi scaricarlo qui https://github.com/5imun/WinCleaner


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
SherylHohman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.