171 votes

Suppression du dossier node_modules de manière récursive à partir d'un chemin spécifié en utilisant la ligne de commande

J'ai plusieurs projets npm enregistrés dans un répertoire local. Maintenant, je veux faire une sauvegarde de mes projets sans l'aide de l'outil de sauvegarde. node_modules car il prend beaucoup d'espace et peut également être récupéré à tout moment à l'aide de la fonction npm install .

J'ai donc besoin d'une solution pour supprimer tous les dossiers node_modules de manière récursive à partir d'un chemin spécifié en utilisant l'interface de ligne de commande. Toute suggestion ou aide est la bienvenue.

4voto

Noseratio Points 23840

Sous Windows, j'utilise la méthode suivante .BAT fichier à supprimer node_modules récursivement à partir du dossier actuel :

@for /d /r . %d in (node_modules) do @if exist %d (echo %d && rd %d /s /q) 

Ou, via CMD.EXE :

cmd.exe /c "@for /d /r . %d in (node_modules) do @if exist %d (echo %d && rd %d /s /q)"

1 votes

1voto

Chau Giang Points 819

Système d'exploitation : Ubuntu

Une astuce simple pour supprimer tous les node_modules dans vos serveurs (ce qui peut réduire beaucoup d'espace) est de fonctionner :

sudo find / -not -path "/usr/lib/*" -name 'node_modules' -type d -prune -exec rm -rf '{}' + 

Ici, nous devons exclure /usr/lib/* parce que si vous ne le faites pas, il supprimera votre npm et vous devez le réinstaller :)

0voto

aniket dhole Points 81

Python script pour supprimer le dossier node_modules de plusieurs projets. Il suffit de le placer dans votre dossier de projet composé de plusieurs projets et de l'exécuter.

import os
import shutil
dirname = '/root/Desktop/proj' #Your Full Path of Projects Folder
dirfiles = os.listdir(dirname)

fullpaths = map(lambda name: os.path.join(dirname, name), dirfiles)

dirs = []

for file in fullpaths:
    if os.path.isdir(file): dirs.append(file)

for i in dirs:
    dirfiles1 = os.listdir(i)
    fullpaths1 = map(lambda name: os.path.join(i, name), dirfiles1)
    dirs1 = []
    for file in fullpaths1:
        if os.path.isdir(file):
            dirs1.append(file)
            if(file[-12:]=='node_modules'):
                shutil.rmtree(file)
                print(file)

1 votes

Cela semble un peu exagéré pour quelque chose qui peut être fait en une seule ligne à partir de programmes linux de base et probablement même de Windows

0voto

Fatih Aziz Points 1

Si vous voulez le déplacer au lieu de le supprimer :

find . -name 'node_modules' -type d -prune -exec mkdir -p ./another/dir/{} \; -exec mv -i {} ./NODE_MODULES/{} \;

cela permettra de conserver la structure du répertoire.

-1voto

Ankit Sinha Points 544

Cela fonctionne très bien

find . -name "node_modules" -exec rm -rf '{}' +

3 votes

Il s'agit d'une duplication des réponses précédentes, mais sans explication.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X