Gulp-watch平息打字稿错误

时间:2015-10-16 08:55:02

标签: typescript gulp-watch

我正在尝试在我的gulpfile中设置一个只构建更改的typescript文件的监视,问题是它监视构建正常,但所有控制台输出似乎都被平息,所以我没有看到任何打字稿编译错误命令行。

这是我的gulpfile的相关部分

var watch=require('gulp-watch');
var ts=require('gulp-typescript');

var tsProj = ts.createProject('tsconfig.json');

gulp.task('watch-typescript', function(){
  watch('app/**/*.ts')
  .pipe(ts(tsProj))
  .pipe(gulp.dest('app'));
});

gulp.task('default', function(){
  gulp.src('app/**/*.ts')
  .pipe(ts(tsProj))
  .pipe(gulp.dest('app'));
});

如果我创建一个在其中有错误的打字稿文件并且只运行默认任务,则报告错误,但是在使用监视任务时,我看到没有错误(它仍然尝试构建(当然也失败)和所有这些)。

我已尝试过这种语法,但也尝试了.pipe(watch('app/**/*.ts'))语法,并尝试了watch('app/**/*.js', function(files){...})语法,但所有不同的解决方案都给出了相同的结果,当gulp-watch打开时,没有控制台其他工具的输出。

我在默认任务中使用.pipe(watch('app/**/*.ts'))时实际上看到了同样的事情,其中​​发生了很多事情(为sass构建触发了几个任务等),并且一旦代码到达看,控制台的所有其他输出都消失了。

所以我的问题是,我在这里缺少什么,这似乎是有问题的,它不会让任何人使用gulp-watch,但我仍然没有找到任何有关谷歌搜索的信息,所以我必须失踪东西。

1 个答案:

答案 0 :(得分:0)

我们正在使用以下任务来构建typescript(默认任务是监视更改并将.ts编译为具有嵌入式源映射的单个文件)。在监视任务工作期间输出中存在错误。

var gulp = require("gulp"),
    concat = require("gulp-concat"),
    ts = require("gulp-typescript"),
    sourcemaps = require("gulp-sourcemaps");

gulp.task("typescript:sources", function () {
    var tsResult = gulp.src(["./sources/**/*.ts"])
       .pipe(sourcemaps.init())
       .pipe(ts({
           target: "ES5",
           noImplicitAny: false
       }));

    return tsResult.js
        .pipe(concat("dist.scripts.js"))
        .pipe(sourcemaps.write({ sourceRoot: "sources" }))
        //Source map is a part of generated file
        .pipe(gulp.dest("./dist"));
});

gulp.task("add_ts_watch:sources", function () {
    gulp.watch(["./sources/**/*.ts"], ["typescript:sources"])
});

gulp.task('default', ['add_ts_watch:sources']);

希望这有帮助。