2016-06-26 9 views
1

Nach diesen question Lesen, dieses Paket documentation und etwas über Klackse here, finde ich die Art und Weise nicht den folgenden Code-Schnipsel zu machen nur die JavaScript-Dateien, ohne ihre übergeordneten Ordner zu filtern:Gulp JavaScript Dateifilterung ohne ihre übergeordneten Ordner

gulp.task("distribution", function() { 

    return gulp.src("distribution/**/*.js", { nodir: true }) 

    .pipe(gulp.dest("www/javascripts")); 

}); 

Was ich erhalte, ist die folgende Dateistruktur:

javascripts/bootstrap/dist/js/bootstrap.js 

javascripts/hammerjs/hammer.js 

javascripts/jquery/dist/jquery.js 

javascripts/localforage/dist/localforage.js 

javascripts/moment/moment.js 

javascripts/vue/dist/vue.js 

javascripts/vue-touch/vue-touch.js 

Und was ich will bekommen, ist die folgende Dateistruktur:

javascripts/bootstrap.js 

javascripts/hammer.js 

javascripts/jquery.js 

javascripts/localforage.js 

javascripts/moment.js 

javascripts/vue.js 

javascripts/vue-touch.js 

Ich habe auch versuchen, diesen Code-Schnipsel ohne Ergebnis überhaupt:

gulp.task("distribution", function() { 

    const filterToApply = filter("*.js", { restore: true }); 

    return gulp.src("distribution/**") 

    .pipe(filterToApply) 

    .pipe(gulp.dest("www/javascripts")); 

}); 

Während dieses geben Sie mir das gleiche Ergebnis wie die erste:

gulp.task("distribution", function() { 

    const filterToApply = filter("**/*.js", { restore: true }); 

    return gulp.src("distribution/**") 

    .pipe(filterToApply) 

    .pipe(gulp.dest("www/javascripts")); 

}); 

Antwort

0

zu Rohr Versuchen dieser Filter mit gulp-flatten durch Hinzufügen:

.pipe(flatten()) direkt vor dem gulp.Dest Rohr.

zum Beispiel:

var flatten = require('gulp-flatten'); 

gulp.src('distribution/**/*.js') 
    .pipe(flatten()) 
    .pipe(gulp.dest('"www/javascripts'));