我正在尝试在我的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,但我仍然没有找到任何有关谷歌搜索的信息,所以我必须失踪东西。
答案 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']);
希望这有帮助。