如何使gulp typescript显示错误?

如何使gulp typescript显示错误?,typescript,angular,gulp,gulp-typescript,Typescript,Angular,Gulp,Gulp Typescript,我正在VisualStudio中开发一个Angular2/Typescript应用程序,并希望设置自己的ts编译器,但每当我运行它并发现错误时,我都无法获得有关它们的详细信息,仅此而已: [16:22:23] Starting 'compile:typescript'... [16:22:26] TypeScript: 1 semantic error [16:22:26] TypeScript: emit failed [16:22:26] Finished 'compile:typescri

我正在VisualStudio中开发一个Angular2/Typescript应用程序,并希望设置自己的ts编译器,但每当我运行它并发现错误时,我都无法获得有关它们的详细信息,仅此而已:

[16:22:23] Starting 'compile:typescript'...
[16:22:26] TypeScript: 1 semantic error
[16:22:26] TypeScript: emit failed
[16:22:26] Finished 'compile:typescript' after 3.14 s
我的gulpfile.js有点大,但相关部分如下:

var gulp = require('gulp');
var del = require('del');
var ts = require("gulp-typescript");
var gutil = require("gulp-util");
var watchifiy = require('watchify');
var sourcemaps = require('gulp-sourcemaps');

// --------------------------  COMPILE TS ---------------------------
gulp.task('compile:typescript', function () {
    var tsResult = gulp.src('./Scripts/**/*.ts', { base: './Scripts' })
        .pipe(sourcemaps.init())
        .pipe(ts(
                ts.createProject('Scripts/tsconfig.json'),
                undefined,
                ts.reporter.fullReporter()));

    return tsResult.js
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./Scripts'));
})
tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "noEmitOnError": true
  },
  "exclude": [
    "node_modules",
    "typings/globals",
    "typings/index.d.ts"
  ]
}

如果您有任何想法,我们将不胜感激。

更新

看起来这是一个已知的bug,找到了

原创

我建议使用该软件包,它允许您将
.pipe
导入任务并捕获标准输出

调试乙烯基文件流以查看通过gulp管道运行的文件

gulpfile.js

var debug = require("gulp-debug");
gulp.task('compile:typescript', function () {
    var tsResult = gulp.src('./Scripts/**/*.ts', { base: './Scripts' })
        .pipe(sourcemaps.init())
        .pipe(debug()) // here...
        .pipe(ts(
                ts.createProject('Scripts/tsconfig.json'),
                undefined,
                ts.reporter.fullReporter()));

    return tsResult.js
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./Scripts'));
})

您需要将它添加到
包.json中的
devdependency
列表中,以便
npm
安装它。

我遇到了类似的问题。删除
“noEmit”:true,
从我的tsconfig.json文件中解决了它


请尝试从您的中删除
“noEmitOnError”:true
,或将其设置为false。

谢谢您的回答。这会显示处理了哪些文件(我的所有.ts文件都是)。这是如何让我更接近于找到语义错误的呢?似乎您已经在使用
fullreporter
,它应该会提供您要查找的错误消息。如果没有,则可能没有任何其他错误消息。从nodejs命令提示符运行时,它是否正确显示错误?如果是,请查看以下内容: