2016-02-12 22 views
6

, onlarla birleştirilmiş ve bir .tmp klasöre minified tüm "Hiçbir şey index.html içine enjekte etmek" diyor:Gulp-inject aşağıdaki gibi, benim endekste bazı dosyaları enjekte çalışıyorum

gulp.task('prep-js',['clean'], function(){ 
    var jspath = './src/page/**/*.js'; 
    var treatJs = gulp.src(jspath) 
     .pipe(plugins.concat('scripts.js')) 
     .pipe(plugins.uglify()) 
     .pipe(gulp.dest('.tmp/page/js')) 
}); 

Ama enjeksiyon görevini çalıştırdığımda, "index.html'ye enjekte edilecek bir şey yok" diyor. İşte kod:

gulp.task('inject-deps', ['prep-css', 'prep-js'], function(){ 

    //select main bower files 
    var bowerDep = gulp.src(plugins.mainBowerFiles(), {read: false}); 

    //inject files 
    return gulp.src('./src/page/index.html') 
      .pipe(plugins.inject(bowerDep, {relative: true, name:'bower'})) 
      .pipe(plugins.inject(gulp.src('.tmp/page/js/*.js'), {name:'frontjs'})) 
      .pipe(plugins.inject(gulp.src('.tmp/page/css/*.css'), {name:'frontcss'})) 
      .pipe(gulp.dest('.tmp/page')); 
}); 

İşin ilginci, ana Bower dosyalarını enjekte ilk boru mükemmel çalışıyor, ancak aşağıdaki ikiye olmaz.

Ayrıca, sadece bilgi için 'plugins' eklentilerimi gerektiren bir değişkendir.

Bu sorun hakkında bir fikriniz var mı?

cevap

3

Sen prep-js görev akışı döndürmek gerekir: çalıştırmadan önce

gulp.task('prep-js',['clean'], function(){ 
    var jspath = './src/page/**/*.js'; 
    return gulp.src(jspath) 
     .pipe(plugins.concat('scripts.js')) 
     .pipe(plugins.uglify()) 
     .pipe(gulp.dest('.tmp/page/js')) 
}); 

Aksi inject-deps birleştirilmiş ve uglified JS dosyaları henüz .tmp/page/js olmayacak anlamına bitirmek prep-js beklemek olmaz. Gulp documentation arasında

ilgili kısım:

Not: Varsayılan olarak, görevleri en eşzamanlılık çalıştırmak - ör Tüm görevleri bir kerede başlatır ve hiçbir şey beklemez. , Görev tamamlandığında

  • bunu bunu anlatmak için bir ipucu vermek
  • ve bir verin: Eğer görevler belirli bir sırada yürütülen bir dizi oluşturmak istiyorsanız, iki şey yapmanız gerekir Bir görevin bir diğerinin tamamlanmasına bağlı olduğunu ima eder.
+0

Teşekkürler @svenschoenung! Fakat bağımlı görevler belirlediğimde henüz yapılmıyor mu? ['Prep-css', 'prep-js'] gibi? –

+0

Hayır, görevlerin aynı anda çalışmasını önlemek için, dokümanlardan aldığım mermi noktalarının ** her ikisine ** ihtiyacınız var. İkincisine sahip olursunuz ([prep-css ',' prep-js '] ') ile olan bağımlılığı ima edersiniz, ancak ilkini (siz benim cesaretlediğim gibi) özlüyorsunuz. –

+0

Yani, geri aramaları kullanmam gerektiği anlamına geliyor, değil mi? –