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.


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/ ]


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



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.


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


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!


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


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


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


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.)



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


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é.


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


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


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


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


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.

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 ....


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).


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


0

Utilisez simplement PowerShell ..

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

rm [yourfolder]

un péché:

rm node_modules

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.


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


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é.


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.


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

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}

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


-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


-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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.