2015-05-20 27 views
9

Css'imi küçülttüğümde, çeşitli kitaplıklardan gelen yazı tiplerine yanlış bir yolla bırakılmıştım. Yani, dist/public/fonts benim bower_components/ klasörden fontları taşımak için bir görev yarattı:Gulp klasör oluşturmuyor mu?

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

Temelde bu benim minified css şimdi erişmek mümkün olmalıdır jenerik yazı klasörüne içine gereken herhangi fontları atmak gerekir.

Ancak, çalıştırdıktan sonra dist/public/fonts mevcut değil. Neden olmasın?

+0

// public/bower_components/bootstrap/dist/fonts/* '- neden bu mutlak bir yoldur. Bu göreceli bir yol olmalı ve eğik çizgi ile başlamayabilir. –

+0

@MadhavanKumar Üzgünüz, bu yazıyı yazarken yazdığım bir yazım hatasıydı! Onu düzenledim. – rublex

+0

Bunu nerede çalıştırıyorsunuz? Ve ben bu dizinden, bir “public” dir ve bir “dist/public” dir var mı? –

cevap

5

src -ing (public/bower_components?) Yollarını tam olarak anlamıyorum, ancak base option for gulp.src'u kullanmak isteyeceğinize inanıyorum.

Bu iki globun farklı üsleri olacağından, bunu iki ayrı göreve ayırmanızı ve bunları tek bir haline getirmek için üçte birini oluşturmanızı öneririm. Aksi halde, birleştirme akışlarına veya addSrc eklentisine girmeniz gerekir.

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

ve oto sizin için hedef klasörler yaratır:

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

this article göre bu gibi src belirtin. Bu durumda, eğer zaten mevcut değilse, 'js' klasörü herkese açık olarak oluşturulacaktır.