Задача Gulp Inject не работает при вызове с последовательностью выполнения
Необходимые шаги
clean build
каталог.compile typescript files
затем поместите скомпилированные файлы в каталог для сборки.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 ответ
Решение
После нескольких часов копания я понял, что когда задача возвращает неподходящий поток, последовательность выполнения останавливается без предупреждения или ошибки. Надеюсь, что это поможет всем, кто имеет такую же проблему.