Задача Gulp Inject не работает при вызове с последовательностью выполнения

Необходимые шаги

  1. clean build каталог.
  2. compile typescript files затем поместите скомпилированные файлы в каталог для сборки.
  3. inject compiled files как скрипт для index.html, затем поместите его в каталог для сборки.

Структура проекта

-- build
-- src
   --app
     --app.ts
     ..
-- index.html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <!-- inject:js -->
    <!-- endinject -->
</body>
</html>

Глоток

"devDependencies": {
   "del": "^2.2.0",
   "gulp": "^3.9.0",
   "gulp-inject": "^3.0.0",
   "gulp-typescript": "^2.10.0",
   "run-sequence": "^1.1.5"
}

gulp.task('clean', function() {
   return del('build');
});

gulp.task('ts', funtion() {
   var tsProject = ts.createProject('tsconfig.json');
   return tsProject.src('src/**/*.ts')
        .pipe(ts(tsProject))
        .js.pipe(gulp.dest('build'));
});

gulp.task('inject', funtion() {
   return gulp.src('index.html')
        .pipe(inject(gulp.src('build/**/*.js', {read: false}), {ignorePath: 'build', relative: true}))
        .pipe(gulp.dest('build'));
});

gulp.task('build', function() {
   runSequence('clean', 'ts', 'inject');
});

проблема

Когда я выполню gulp ts && gulp inject это работает отлично.

Когда я извиняюсь gulp build inject не работает без распечатки сообщений.

Я думаю, что есть проблемы с последовательностью выполнения. Не могли бы вы помочь мне разобраться в проблемах и как их решить?

1 ответ

Решение

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

Другие вопросы по тегам