2016-02-12 2 views
6

Я пытаюсь внедрить некоторые файлы в моем индексе, все они каскадной и уменьшенная в .tmp папку, следующим образом:Глоток-инъекционные говорит: «Ничто не впрыснуть в 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')) 
}); 

Но когда я запускаю задачу инъекции, она говорит «Ничего не вводить в index.html». Вот код:

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

Интересная вещь, первая труба инъекционного основные Бауэр файлы отлично работает, но это не происходит в следующих двух.

Также для информации «плагины» - это переменная, которая требует моих плагинов.

Есть идеи по этой проблеме?

ответ

3

Вы должны вернуть поток в вашей 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')) 
}); 

В противном случае inject-deps не будет ждать prep-js закончить, прежде чем он работает, а это означает, что каскадные и обезображенный JS файлы не будут в .tmp/page/js еще.

Соответствующая часть Gulp documentation:

Примечание: По умолчанию, задачи выполняются с максимальной параллельности - например, он запускает все задачи сразу и ничего не ждет. Если вы хотите, чтобы создать ряд, где задачи выполняются в определенном порядке, вам нужно сделать две вещи:

  • дать ему подсказку, чтобы сказать это, когда задача выполнена,
  • и дать ему намек на то, что задача зависит от завершения другого.
+0

Thanks @svenschoenung! Но разве это не делается, когда я указываю зависимые задачи, например ['prep-css', 'prep-js']? –

+0

Нет, для предотвращения одновременного запуска задач вам необходимо ** оба ** пунктов маркера, которые я цитировал в документах. У вас есть вторая (намекая зависимость с '['prep-css', 'prep-js']'), но вам не хватает первого (тот, который я выделил). –

+0

Итак, это означает, что мне нужно использовать обратные вызовы, верно? –

Смежные вопросы