2

所需步骤

  1. clean build目录。
  2. compile typescript files然后将编译好的文件放入构建目录。
  3. inject compiled files作为 index.html 的脚本,然后将其放入构建目录。

项目结构

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

索引.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,没有打印出消息。

我认为运行顺序存在问题。您能帮我找出问题以及如何解决吗?

4

1 回答 1

1

经过几个小时的挖掘,我意识到当一个任务返回一个不合适的流时,run-sequence 停止运行,没有任何警告或错误。希望这会帮助其他有同样问题的人。

于 2015-12-27T13:46:19.607 回答