2015-05-20 14 views
9

Quando ho eliminato il mio css, mi è stato lasciato un percorso errato per i font da varie librerie. Così, ho creato un compito di spostare i font dalla mia cartella bower_components/ a dist/public/fonts:Gulp non crea una cartella?

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

sostanza che dovrebbe buttare tutti i font di cui ho bisogno in una cartella dei font generici, che il mio css minified dovrebbe ora essere in grado di accedere.

Ma dopo averlo eseguito, dist/public/fonts non esiste. Perchè no?

+0

'/ public/bower_components/bootstrap/dist/fonts/*' - perché questo è un percorso assoluto. Questo deve essere un percorso relativo e potrebbe non iniziare con la barra in avanti. –

+0

@MadhavanKumar Spiacente, quello era un errore quando stavo scrivendo questo post! L'ho modificato – rublex

+0

Dove stai eseguendo questo? E ho ragione nel presumere che da quella directory, hai una directory 'public' e una dir 'dist/public'? –

risposta

5

Non capisco perfettamente i percorsi che stai src -ing (public/bower_components?), Ma credo che vorrai usare lo base option for gulp.src.

Poiché questi due globi avranno basi diverse, suggerirei di suddividerli in due compiti separati e di costruire un terzo per aggregarli in un singolo. Altrimenti dovrai avviare la fusione dei flussi o il plug-in addSrc.

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

Secondo this article, specificare lo src in questo modo:

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

e si auto creare le directory di destinazione per voi. In questo caso, la cartella 'js' verrà creata in pubblico se non esiste già.

Problemi correlati