2015-05-20 7 views
9

Als ich mein CSS verkleinerte, blieb mir ein falscher Pfad zu den Schriften aus verschiedenen Bibliotheken. Also habe ich eine Aufgabe, die Fonts von meinem bower_components/ Ordner dist/public/fonts zu verschieben:Gulp erstellt keinen Ordner?

gulp.task('doit', function() { 
    gulp.src(["public/bower_components/bootstrap/dist/fonts/*", "public/bower_components/font-awesome/fonts/*"]) 
     .pipe(gulp.dest("dist/public/fonts")); 
}); 

Im Grunde, dass alle Schriften werfen sollte ich in ein generisches Fonts-Ordner benötigen, die meine minimierte CSS sollte nun in der Lage sein, zuzugreifen.

Aber nachdem ich es ausgeführt habe, existiert dist/public/fonts nicht. Warum nicht?

+0

'/ public/bower_components/bootstrap/dist/fonts/*' - warum ist das ein absoluter Pfad? Dies muss ein relativer Pfad sein und es darf nicht mit Schrägstrich beginnen. –

+0

@MadhavanKumar Sorry, das war ein Tippfehler, als ich diesen Beitrag schrieb! Ich habe es bearbeitet. – rublex

+0

Wo fährst du das? Und habe ich recht, wenn ich davon ausgehe, dass Sie von diesem Verzeichnis aus ein "public" -Dir und ein "dist/public" -Dir haben? –

Antwort

5

Ich verstehe nicht vollständig die Pfade, die Sie src -ing (public/bower_components?) Sind, aber ich glaube, dass Sie die base option for gulp.src verwenden möchten.

Da diese beiden Globs unterschiedliche Basen haben, würde ich vorschlagen, sie in zwei separate Aufgaben aufzuteilen und ein Drittel zu bilden, um sie zu einem einzigen zusammenzufassen. Sonst müssen Sie in die Zusammenführung von Streams oder das addSrc Plugin einsteigen.

gulp.task('copy:fonts:bootstrap', function() { 
    return gulp.src(
     [ 
      'public/bower_components/bootstrap/dist/fonts/**/*' 
     ], 
     { 
      base: 'public/bower_components/bootstrap/dist/fonts' 
     } 
    ) 
     .pipe(gulp.dest('dist/public/fonts')); 
}); 

gulp.task('copy:fonts:fontawesome', function() { 
    return gulp.src(
     [ 
      'public/bower_components/font-awesome/fonts/**/*' 
     ], 
     { 
      base: 'public/bower_components/font-awesome/fonts' 
     } 
    ) 
     .pipe(gulp.dest('dist/public/fonts')); 
}); 

gulp.task('copy:fonts', ['copy:fonts:bootstrap', 'copy:fonts:fontawesome']); 
3

Nach this article geben Sie Ihre src wie folgt aus:

gulp.src(['src/js/**/*.js'], { base: 'src' }) 
    .pipe(foo()) 
    .pipe(gulp.dest("./public/")); 

und es wird die Zielverzeichnisse für Sie automatisch erstellen. In diesem Fall wird der Ordner 'js' öffentlich erstellt, wenn er nicht bereits existiert.

Verwandte Themen