2016-11-24 3 views
0

ich diese Datei Struktur haben:Dateien Merge nur dann, wenn sie tiefer als zwei Ebenen

  • Wurzel

    • Folder1

      • Subfolder1.1
        • SubFolder1 .1.1
          • file_1.1.1.1.js
          • file_1.1.1.2.js
        • file_1.1.1.js
        • file_1.1.2.js
      • Subfolder1.2
    • Folder2

    • Folder3

Ich versuche, die folgenden schluck Aufgabe zu erfüllen, die das Root-Verzeichnis nehmen, in diesem Fall, im Stammordner, und erzeugen die folgende Struktur:

  • Wurzel

    • Folder1

      • Subfolder1.1
        • Subfolder1.1.1.min.js
        • file_1.1.1.min.js
        • file_1.1.2.min.js
      • Subfolder1.2
    • Folder2

    • Folder3

Wie Sie sehen können, werden die Dateien, die direkt in der zweiten Ebene sind, beispielsweise Unterordner1.1, werden nur minimiert. Alle Dateien, die tiefer als zwei Ebenen sind, werden verkettet und nach dem Ordner der zweiten Ebene benannt, der sie enthält.

Ist das möglich, in Schluck zu erreichen, und wenn es ist, kann mir jemand einen Hinweis geben, wie es geht?

Antwort

0

Okay, ich war in der Lage, es zu tun, hier ist der Code:

gulp.task('task', 
function() { 
    // The input root dir 
    var root = 'root_in'; 

    // The output root dir 
    var rootOut = 'root_out' 

    // first get all the folders in the in the root directory 
    var folders = fs.readdirSync(root) 
     .filter(function(file) { 
      return fs.statSync(path.join(root, file)).isDirectory(); 
     }); 

    return folders.map(function(folder) { 
     // get the files inside each folder 
     var files = fs.readdirSync(path.join(root, folder)); 
     files.map(function(file) { 

      // in case it is a directory, concat all the files 
      if (fs.statSync(path.join(root, folder, file)).isDirectory()) { 
       return gulp.src(path.join(root, folder, file, '/**/*.js')) 
        .pipe(uglify()) 
        .pipe(gulp_concat(file + '.js')) 
        .pipe(gulp.dest(path.join(root, folder))) 
      } 
      // if it is a regular file, just uglify it and output 
      else { 
       return gulp.src(path.join(root, folder, file)) 
        .pipe(uglify()) 
        .pipe(gulp.dest(path.join(rootOut, folder))); 
      } 
     }); 
    }); 
}); 
Verwandte Themen