【问题标题】:Gulp-watch quells typescript errorsGulp-watch 平息打字稿错误
【发布时间】:2015-10-16 08:55:01
【问题描述】:

我试图在我的 gulpfile 中设置一个只构建更改的打字稿文件的手表,问题是它可以很好地观察一个构建,但所有控制台输出似乎都被平息了,所以我没有看到任何打字稿编译错误命令行。

这是我的 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,但是我在谷歌搜索时仍然没有找到任何关于这个的信息,所以我一定是错过了东西。

【问题讨论】:

    标签: typescript gulp-watch


    【解决方案1】:

    我们正在使用以下任务来构建打字稿(默认任务是监视更改并将 .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']);
    

    希望这会有所帮助。

    【讨论】:

    • 这和我们已经有的差不多,但是像这样编译所有东西时需要一分半钟,而且不可行,我们需要一个只编译触发手表的文件的解决方案. gulp.watch 不能这样做,但 gulp-watch 应该这样做。
    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2022-11-02
    相关资源
    最近更新 更多