2017-08-01 1 views
0

Ich versuche, meine gulpfile.js, um alle .js Dateien in meinem Ordner src/js verketten und benennen sie basierend auf ihren übergeordneten Ordner.Verketten und Umbenennen von Dateien basierend auf Directory-Namen mit Gulp

Beispiel für Ordnerstruktur:

project 
| 
+-assets 
| | 
| +-app.min.js 
| | 
| +-vendor.min.js 
| 
+-src 
| | 
| +-app 
| | | 
| | +-file1.js 
| | | 
| | +-file2.js 
| | 
| +-vendor 
| | | 
| | +-file1.js 
| | | 
| | +-file2.js 

Ich kann es für bestimmte Ordner einrichten und haben spezifische Dateinamen für jeden, aber ich würde eine Funktion wie die durch eine nicht definierte Variation von Ordnern und Namen ausgeführt werden können.

Was war ich mit vorher war:

gulp.task('js', function() { 
    gulp.src('src/js/app/**/*.js') 
     .pipe(plumber(plumberErrorHandler)) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('fail')) 
     .pipe(concat('app.min.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('assets/js')) 
}); 

Antwort

0

aber ich würde eine Funktion wie die durch eine nicht definierte Variation von Ordnern und Namen ausgeführt werden können.

Ich persönlich kenne keine einfache Möglichkeit, das zu tun. Was ich normalerweise für dieses Problem lösen würde, ist eine Pfadvariable mit dem Namen dieser Ordner zu setzen und meine Aufgabe so zu erstellen.

var path = [ 'app', 'vendor' ]; 

gulp.task('js', function() { 
    for (var i = 0; i < path.length; i++) { 
    var p = path[i]; 
    gulp.src('src/' + p + '/**/*.js') 
     .pipe(plumber(plumberErrorHandler)) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('fail')) 
     .pipe(concat(p + '.min.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('assets/js')) 
    } 
}); 

Ich habe gehört, dass gulp-path könnte tun, was Sie wollen, aber ich habe persönlich nicht in sie aussehen.