2016-04-22 18 views

Antwort

4

können Sie delete-empty verwenden:

gulp.task('delete-empty-directories', function() { 
    deleteEmpty.sync('foo/'); 
}); 

Dies löscht rekursiv alle leere Ordner unter foo/.

0

Hier ist eine grobe Start, so dass Sie nur für Rekursion Schleife brauchen werden, denke ich.

var modules = { 
    gulp  : require('gulp'), 
    fs   : require('fs'), 
    path  : require('path'), 
    del  : require('del'), 
    map  : require('map-stream') 
}; 

modules.gulp.task('folder-delete', function() { 

    // get folder list inside of the dir passed in 
    function getFolders(dir) { 
     return modules.fs.readdirSync(dir) 
      .filter(function(file) { 
      return modules.fs.statSync(modules.path.join(dir, file)).isDirectory(); 
      }); 
    } 

    var dir  = '../src/', // (update with your path to the root folder) 
     folders = getFolders(dir), 
     hasFile = 0; 

    var folderMap = folders.map(function(folder) { 
     hasFile = 0; // reset for each folder 

     return modules.gulp.src(dir + folder + '/**/*') 
      .pipe(modules.map(function(file, cb) { 
       hasFile = 1; 
       cb(null, file); 
      })) 
      .on('end', function() { 
       console.log(hasFile, ' - ', folder); 

       if (!hasFile) { 
        modules.del([dir + folder], { force: true }).then(function() { 
         console.log('Deleted ' + dir + folder); 
        }); 
       } 
      }) 
    }); 

    return folderMap; 
}); 

Im Grunde ist das Verzeichnis bei ../src/ Einstellung immer die Ordner an der Wurzel dieses dir, läuft dann die src unter diesen Verzeichnissen. Es verwendet dann map, um zu sehen, ob dem Stream eine Datei hinzugefügt wurde, und aktualisiert dann eine Variable, falls dies der Fall ist. Wenn die Aufgabe beendet ist und die Variable nicht aktualisiert wurde, löscht sie den Ordner.

Wie oben erwähnt, könnten Sie wahrscheinlich nur die Verzeichnisse für die Rekursion durchlaufen (oder Sie könnten eines der erwähnten Plugins verwenden).

+0

Thx. Ich werde zuerst die Lösung von "Sven Schoenung" versuchen, weil ich im Moment mehr Abhängigkeiten bevorzuge als mehr Code. – Sailcomp

+0

kein Problem. Ich war in der Stimmung, es aufzuschreiben. Lassen Sie uns wissen, ob es für Sie funktioniert! :) – JSess

Verwandte Themen