Gulp-inject говорит: "Ничего не вставлять в index.html"
Я пытаюсь вставить некоторые файлы в мой индекс, все они объединены и сведены в папку.tmp следующим образом:
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'));
});
Интересно, что первая труба, впрыскивающая основные файлы бауэра, работает отлично, но не происходит со следующими двумя.
Кроме того, просто для информации, плагины - это переменная, которая требует моих плагинов.
Есть идеи по этому вопросу?
1 ответ
Вы должны вернуть поток в вашем 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
чтобы закончить, прежде чем он запустится, это означает, что сцепленные и Uglified JS-файлы не будут в .tmp/page/js
еще.
Соответствующая часть документации Gulp:
Примечание. По умолчанию задачи выполняются с максимальным параллелизмом - например, он запускает все задачи одновременно и ничего не ждет. Если вы хотите создать серию, в которой задачи выполняются в определенном порядке, вам нужно сделать две вещи:
- дать подсказку, чтобы сказать, когда задача выполнена,
- и намекните, что задача зависит от выполнения другой.