2016-02-12 15 views
6

sto cercando di iniettare alcuni file nel mio indice, tutti loro concatenati e minified in una cartella TMP, come segue:Gulp-inietti dice "Niente da iniettare in index.html"

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')) 
}); 

Ma quando eseguo l'operazione di iniezione, dice "Niente da iniettare in index.html". Ecco il codice:

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')); 
}); 

Cosa interessante, il primo tubo iniettando i file Bower principali funziona perfettamente, ma non accade per i due seguenti.

Inoltre, solo per informazioni, "plug-in" è una variabile che richiede i miei plugin.

Qualche idea su questo problema?

risposta

3

è necessario restituire il flusso nel vostro compito prep-js:

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')) 
}); 

Altrimenti inject-deps non aspetterà prep-js di finire prima viene eseguito, cioè il file JS concatenati e uglified non saranno in .tmp/page/js ancora.

parte rilevante del Gulp documentation:

Nota: per impostazione predefinita, le attività eseguite con la massima concorrenza - ad esempio lancia tutte le attività contemporaneamente e non aspetta nulla. Se si desidera creare una serie in cui le attività eseguite in un ordine particolare, è necessario fare due cose:

  • dargli un suggerimento per dire quando il compito è fatto,
  • e dare un suggerisce che un compito dipende dal completamento di un altro.
+0

Grazie a @svenschoenung! Ma non è ancora stato fatto quando ho specificato le attività dipendenti, come ['prep-css', 'prep-js']? –

+0

No, per impedire l'esecuzione simultanea delle attività è necessario ** entrambi ** dei punti elenco che ho citato dai documenti. Hai il secondo (suggerendo la dipendenza con '['prep-css', 'prep-js']'), ma ti manca il primo (quello in grassetto). –

+0

Quindi, ho bisogno di usare le callback, giusto? –