Comment supprimer node_modules - Dossier imbriqué profond dans Windows

229

En essayant de supprimer le répertoire node_modules créé par npm install:

Le ou les noms de fichier source sont plus grands que ceux pris en charge par le système de fichiers. Essayez de vous déplacer vers un emplacement dont le nom de chemin est plus court, ou essayez de renommer un ou des noms plus courts avant de tenter cette opération

J'ai également essayé shift+ deleteet j'ai toujours le même problème.

leoh
la source
try renaming to shorter name(s) before attempting this operation
SLaks le
3
Merci pour votre suggestion, @ SLaks! J'aurais dû mentionner que j'ai essayé cela aussi, mais les fichiers et les répertoires sont nombreux et profonds, il a des choses comme C: \ Users \ my_user_name \ 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 \ ... et cela continue. Il n'est pas pratique de renommer les fichiers manuellement et j'espère qu'il y aura des moyens plus faciles sans écrire de programme
leoh
1
Webstorm peut tout supprimer.
ozzimpact
J'ai utilisé l'outil Long Path Fixer et supprimé avec succès ce dossier ".meteor". ( long-path-fixer.fr.softonic.com )
Vu Doan
RUN INSTALL, npm install rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Réponses:

438

Puisque c'est le meilleur résultat Google, c'est ce qui a fonctionné pour moi:

Installez RimRaf:

npm install rimraf -g

Et dans le dossier du projet, supprimez le dossier node_modules avec:

rimraf node_modules

Si vous souhaitez supprimer récursivement:

rimraf .\**\node_modules

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

blub
la source
ne fonctionne pas ici: "Erreur: ENOTEMPTY, répertoire non vide". et le lien fourni ne fonctionne pas!
olefrank
7
Je suis l'auteur de l'article de blog. @olefrank: cela a tendance à se produire lorsque vous essayez de supprimer l'intégralité du dossier (pas seulement node_modules), et également si vous avez le dossier ouvert dans une fenêtre de l'Explorateur. usagidon, merci d'avoir lié la source d'origine.
Nikola
2
Cela ne sera pas utile si vous n'avez pas NodeJS, ou si vous essayez de supprimer les modules globaux de NodeJS après l'avoir désinstallé (c'est pourquoi j'ai dû utiliser robocopy)
Zorgatone
1
Je vais ajouter mes 2 cents ici pour être un peu plus précis sur la question. Vous pouvez supprimer tous les dossiers node_modules de manière récursive (en utilisant un modèle de globalisation) comme ceci:rimraf .\**\node_modules
Artif3x
1
@ Commif Artif3x devrait être marqué comme la meilleure réponse loll! merci pour l'astuce pour la suppression récursive :-)
Juan Stoppa
111

J'ai simplement fait cela en utilisant Winrar, cela peut sembler une solution étrange mais fonctionne très bien.

  • clic droit sur le node_modulesdossier
  • sélectionnez Add to archive ...dans le menu.
  • La boîte de dialogue Winrar s'ouvre
  • il suffit de cocher l'option delete files after archiving
  • N'oubliez pas de supprimer le node_modules.rar après avoir terminé.


[MISE À JOUR] Cela fonctionne également avec 7Zip


Eymen Elkum
la source
7
wow c'est sournois! +1 J'utilise robocopy mais apparemment cela a été corrigé avec un nouveau npm ou quelque chose.
erp
1
@ChrisS Comment ça marche avec 7Zip? Surtout lors de l'utilisation de l'interface graphique!
bennos
4
En 2016 (et surtout en 2018), vous ne devriez pas être aussi intelligent pour supprimer un tas de fichiers.
webelo
73

SUPPRIMER uniquement en utilisant la commande DOS sans aucune installation:

Créez un dossier vide "test" sur le lecteur C ou D et utilisez la commande DOS suivante

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

Après avoir terminé la commande ci-dessus, votre dossier sera vide, vous pouvez maintenant supprimer le dossier.

Ne vous inquiétez pas, votre dossier de test sera toujours vide, vous pouvez donc le supprimer à tout moment.

Ali Adravi
la source
12
meilleure réponse, car vous n'avez rien à installer
luschn
1
Après avoir essayé rimraf et ajouté un dossier réseau, c'est la solution la plus propre que j'ai trouvée. Merci de partager cela.
danyim
1
grande solution; facile.
bob.mazzo
2
Je viens de faire un mineur addion: > NUL. Quand je viens d'essayer cela, il était accéléré par la console et allait prendre 15 minutes ou plus. Avec la redirection en place, il s'est terminé dans environ 2
Mike Caron
C'est drôle que pour supprimer certains fichiers JS, vous ayez besoin d'une autre bibliothèque JS.
linuxunil
30

Vous pouvez utiliser Git Bash pour supprimer le dossier:

exemple: c: \ users \ olefrank \ projects \ mynodeproject

rm -rf / c / utilisateurs / olefrank / projets / mynodeproject

olefrank
la source
9
Cela n'a pas fonctionné sous Windows 7. Erreur de répertoire non vide
Miguel Stevens
5
Vous devez également spécifier l'indicateur -d, qui supprimera également les répertoires.
Stuart.Sklinar
ou -fR pour grimper récursivement vers le haut et supprimer également le dossier
Dan Kanze
@Karthiga -rf sont des indicateurs / options / paramètres qui indiquent au RM comment effectuer l'opération de suppression. rdit de rentrer dans tous les sous-répertoires et fdit de forcer la suppression (ne pas demander) -rfest une convention Unix pour spécifier plusieurs drapeaux / options à la fois.
Tim Coker
20

J'ai utilisé GitBash pour supprimer le dossier!

rm -r node_modules

Il a fallu un certain temps pour tout supprimer, mais cela a fonctionné pour moi!

Bruno DM
la source
Cela a fonctionné pour moi. J'utilisais rimraf plus tôt. rimraf n'a pas fonctionné et j'ai essayé.
Saiyaff Farouk
Cela devrait être le meilleur commentaire. Non, installer quelque chose juste pour supprimer quelque chose. Sinon, tapez simplementRD node_modules
David MacNeil
15

Supprimer le dossier Deep Netsted comme node_modules dans Windows

  1. Option 1

    Supprimer à l'aide du rimrafpackage NPM

    • Ouvrez l'invite de commande et modifiez votre répertoire dans le dossier où le node_modulesdossier existe.

    • Courir

      rimraf node_modules

    • Erreur rimraf manquante puis installation

      npm install rimraf -g

    • Une fois l'installation terminée, exécutez

      rimraf node_modules

  2. Option 2 :

    Détéler sans rien installer

    • Créez un dossier avec un nom testdans n'importe quel lecteur

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

    • supprimez le dossier testet FolderToDeleteles deux étant vides

Pourquoi est-ce un problème dans Windows?

L'une des structures de dossiers imbriquées profondes est node_modules, Windows ne peut pas supprimer le dossier car son nom est trop long . Pour résoudre ce problème, solution facile, installez un module de nœud RimRaf

Jinna Balu
la source
Error: EPERM: operation not permitted
Travis Heeter
1
Correction: j'ai dû redémarrer mon ordinateur. Quelque chose utilisait node_modules, mais cela me donnait une erreur de permission.
Travis Heeter
8

Essayez Visual Studio Code

Après avoir essayé de nombreuses solutions, je trouve que celle-ci est assez simple. ouvrez simplement le projet dans le code Visual et supprimez-le. l'interface utilisateur peut se bloquer pendant quelques secondes, mais cela fonctionnera certainement. Je teste en utilisant de nombreux dossiers node_modules de grande taille avec elle

entrez la description de l'image ici

Merci

Umar Abbas
la source
Fonctionne étrangement !! :) J'ai essayé de le supprimer même en mode sans échec, même utilisé, sudo sumais rien n'y fait. BTW, je fonctionne sur OSX qui ne m'est jamais arrivé jusqu'à ce que je sois passé à Mojave.
forloop
6

Vous pouvez utiliser Git Bash pour supprimer le dossier:

exemple: c: \ users \ stu \ projects \ mynodeproject

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

Stuart.Sklinar
la source
5

J'ai eu un problème similaire et RD n'a pas fonctionné, pour une raison inconnue.

NPM peut cependant se débarrasser de son propre désordre, donc si vous le faites npm uninstall [module-name]pour chaque répertoire dans node_modules, vous vous en débarrasserez.

(Je vais voir comment faire une boucle par lots plus tard, pour ceux qui ont beaucoup de dépendances.)

Chris
la source
5
  1. npm install -g remove-node-modules
  2. cd pour rooter et remove-node-modules
  3. ou remove-node-modules path/to/folder

La source:

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

j_quelly
la source
1
Veuillez ne pas simplement fournir un lien uniquement. Ajoutez au moins quelques explications.
cfi
4

il suffit de courir pour Windows, je ne l'ai pas testé pour d'autres systèmes d'exploitation

rm -r node_modules

en fait, vous pouvez supprimer n'importe quel dossier avec cela.

comme rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

ouvrez simplement le mouvement gitbash à la racine du dossier et exécutez cette commande

J'espère que cela vous aidera.

Merci, Ajay Kotnala

Ajay Kotnala
la source
2

Sous Windows, à l'aide de Total Commander, il vous suffit de sélectionner le dossier, cliquez sur shift+ delete. N'oubliez pas la shiftclé.

Andrzej Gis
la source
C'est la meilleure solution! TC supprime le dossier sans hoquet et c'est vraiment rapide
Marina Dunst
2

Tout gestionnaire de fichiers permet d'éviter de tels problèmes, par exemple Far Manager

entrez la description de l'image ici

Veniamin
la source
2
Je n'avais vu personne utiliser cette interface depuis plus de 10 ans maintenant. J a fait ma journée.
Rikki
2

Je fais juste del node_modules dans mon dossier de projet sur PowerShell, il vous demandera si vous voulez le supprimer et son dossier enfant, appuyez simplement sur 'Y' et c'est tout

Roy.B
la source
Simple. Merci
Estin Sunny
... \ node_modules a des enfants et le paramètre Recurse n'a pas été spécifié. Si vous continuez, tous les enfants seront supprimés avec l'article. Es-tu sur de vouloir continuer? [Y] Oui [A] Oui à tous [N] Non [L] Non à tous [S] Suspendre [?] Aide (par défaut "Y"): Oui: répertoire C: \ ... \ node_modules \ ngx -color-picker \ dist ne peut pas être supprimé car il n'est pas vide. rd node_modules -recurse
AUSTX_RJL
1
rd node_modules -recurse
AUSTX_RJL
@AUSTX_RJL rd fonctionne également, mais je n'ai jamais eu de problème avec del node_modules .. câblé, mais tnx de toute façon pour une autre façon de supprimer dans PS
Roy.B
2

J'ai tout essayé mais ça n'a pas marché. Toutes les méthodes ci-dessus n'ont rien fait. Enfin, j'ai pu supprimer via VSCode.

  1. Ouvrez simplement votre dossier racine avec VSCode.
  2. Sélectionnez le node_modulesdossier et supprimez.
  3. Profit. (Il faudra few millisecondssupprimer.)

VSCode-delete.png

Junaid Atari
la source
2

J'ai créé un élément de contexte Windows pour supprimer rapidement les modules node_modules ou d'autres dossiers. Je l'utilise lorsque Windows ne supprime pas un dossier en raison de caractères non valides dans le chemin du répertoire.

COMMENT INSTALLER?

  1. Installez rimraf =>npm install rimraf -g

  2. Créez un nouveau fichier nommé delete.bat, définissez le contenu comme ci-dessous et copiez-le dansc:\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. Exécutez le fichier fast-delete.reg pour importer dans le registre.

    Terminé!

résultat final

Alper Ebicoglu
la source
1

Une solution que j'utilise:

(Je préférerais éviter d'installer une nouvelle extension (rimraf) lorsque vous travaillez avec des environnements CI.)

  1. A) Renommez packages.json en quelque chose d'autre. B) Spécialement sur CI - après l'installation de npm, je supprime généralement le fichier au lieu de le renommer, mais si vous en avez besoin, vous n'avez pas à le faire. C'est ton choix.
  2. run npm init- cela créera un packages.jsonfichier vide (pas de dépendances)
  3. run npm prune- cela fera correspondre node_modules avec la section des dépendances de packages.json- qui est maintenant vide à la suite de l'étape # 2.
  4. Si vous avez choisi # 1.A. étape, supprimez la nouvelle création packages.jsonet renommez l'original packages.jsonen son nom d'origine.
Rikki
la source
1

C'est trop facile.

Supprimez simplement tous les dossiers à l'intérieur de node_modules, puis supprimez le dossier node_module réel.

Cela fonctionne pour moi. Bonne chance ....

Priyanka
la source
Honnêtement, c'est le moyen le plus rapide mais il faut beaucoup de patience. Encore mieux si vous supprimez quelques dossiers à la fois.
Santosh
1

Sous Windows, ma solution Go utilise la rmdircommande :

rd /S .\node_modules\

S'il échoue la première fois, réessayez. Vérifiez également si vous avez des scripts en cours d'exécution utilisant actuellement les modules ( npm run serveou similaires).

korun
la source
0

D'après cet aspect de cet article MSDN , il semble que vous pouvez maintenant contourner la restriction MAX_PATH dans Windows 10 v1607 (AKA `` mise à jour anniversaire '') en modifiant une valeur dans le Registre - ou via la stratégie de groupe

moloko
la source
0

Utilisez simplement PowerShell ..

Exécutez powershell et cd dans le dossier parent, puis:

rm [yourfolder]

un péché:

rm node_modules
Darren Ford
la source
0

Je suis sur Windows 10 et je ne pouvais pas supprimer les dossiers avec le message "répertoire non emtpy". Ni rimraf ni rm -rf n'ont fonctionné.

Copier un fichier texte vide dans chaque dossier a fait l'affaire - j'ai pu supprimer le dossier node_modules complet.

ralusnom
la source
0

Parfois, même si vous installez rimrafglobalement, vous pouvez avoir une rimrafdépendance locale (SASS en a généralement). Dans ce cas, j'exécuterais les commandes suivantes:

Suivez les 2 premières étapes comme recommandé par usagidon , si vous avez des problèmes ou des erreurs, essayez

npm uninstall rimraf & rimraf node_modules

cela supprimera local rimrafet utilisera le global

user2869931
la source
0

Pas exactement lié, mais comme c'est le premier message que j'ai trouvé dans ma recherche d'une solution similaire, je pense que cela vaut la peine d'être publié ici.

Je rencontrais des problèmes d'autorisation sur Windows 10 en essayant de supprimer mon dossier node_modules après une tentative infructueuse d'installation de electron-redux. Il semble qu'electron-redux ait ajouté @types à mes node_modules, qui avaient des autorisations incorrectes configurées.

rimraf n'a pas fonctionné car il rencontrait toujours des problèmes d'autorisation.

J'ai fini par renommer node_modules puis une simple suppression a fonctionné.

Jake Conniff
la source
0

Bon, mon problème était que j'avais un dossier .bin à l'intérieur de node_modules et je n'ai pas pu le supprimer, j'ai essayé toutes les solutions ci-dessus pour la même chose mais rien n'a fonctionné.

L'erreur qui se répétait était "vous n'avez pas l'autorisation de supprimer le dossier ou il a été utilisé par un autre programme".

Solution que j'ai trouvée "J'avais installé un antivirus sur mon PC, qui utilisait sans le savoir les fichiers du dossier node_modules".

J'ai désinstallé l'antivirus ou vous pouvez modifier le paramètre d'autorisation à partir de l'option de réglage de l'antivirus (selon l'antivirus que vous avez). Maintenant, je suis en mesure de supprimer le dossier node_modules.

gaurav bhatt
la source
0

Ce qui a fonctionné pour moi, c'est:

  1. fermé la console du gestionnaire de nœuds
  2. fermé l'environnement de développement Atom (Visual Studio Code) dans lequel vous vous trouvez.
  3. puis supprimez les node_modules

    npm install rimraf -g 
    rimraf node_modules
Sumanth
la source
0

La manière PowerShell:

PS > rm -r -force node_modules

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

Et si vous souhaitez supprimer tous les node_modulessous-répertoires:

Remarque Potentiellement dangereux car il supprime récursivement, assurez-vous de ce que vous faites ici

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

Vous pouvez utiliser un autre package npm spécifiquement à cet effet. En l'installant localement dans le dossier à l'aide de

npm i rm-node-modules-recur

Si vous le souhaitez, vous pouvez également l'installer globalement avec le commutateur -g.

S'il est installé localement, vous pouvez appeler le binaire à partir du répertoire actuel node_modules.bin \ en utilisant

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

Si vous avez choisi une installation globale, utilisez simplement

rmnodes "<top level directory within quotes>"

et c'est tout. ce paquet finira par supprimer les node_modules de tous les sous-répertoires de manière récursive (dans mon cas quelque 60 dossiers impairs) avec facilité. reportez-vous à l'instantané ci-joint. en utilisant rm-node-modules-recur

Maneesh Parihar
la source
-1

Avancez un peu pour plusieurs dossiers ...

Si vous avez un dossier de projet avec plusieurs 'builds' qui contient 'node_module'. Comme:

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

Vous souhaitez supprimer tous les dossiers commence par "build"

! Installez d'abord nodejs et rimraf comme suggéré ci-dessus!

Ensuite, accédez au chemin avec le projet et exécutez la commande PowerShell

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

Ça va prendre une ruse

Aidar Gatin
la source
-1

Vous pouvez créer un lot simple basé sur la réponse @ mike-caron afin que vous n'ayez pas besoin de taper à chaque fois la robocopycommande entière à la place, entrez simplement le chemin d'accès au dossier sélectionné:

@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

Ici, vous utilisez un répertoire vide nommé empty_dir dans la robocopycommande qui doit être dans le même répertoire avec le fichier de commandes pour que cela fonctionne. Une fois que le fichier de commandes a terminé son travail, le répertoire sélectionné et le répertoire empty_dir seront vides afin que vous puissiez les supprimer.

J'ai créé un fichier de commandes simple qui crée un dossier vide et après l' robocopyexécution de la commande supprime à la fois le dossier vide et le dossier sélectionné de sorte que la seule chose que vous devez faire est d'entrer le chemin d'accès au dossier sélectionné que vous souhaitez supprimer. C'est rapide et pratique si vous ne voulez pas installer des trucs comme rimraf . Vous pouvez le télécharger ici https://github.com/5imun/WinCleaner

Šime
la source
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change. - De l'avis
SherylHohman