angular - Hvordan få gulp-typescript til å vise feil?


Jeg utvikler en Angular2/Typescript-app i VisualStudio og ønsket å sette opp min egen ts-kompilator, men hver gang jeg kjører den og den finner feil får jeg ikke detaljer om dem, bare dette:

[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

Min gulpfile.js er ganske stor, men den relevante delen er her:

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"
  ]
}

Ville være takknemlig for alle ideer.

Svar #1

Oppdatering

Det ser ut til at dette er en kjent feil, funnet her.

Original

Jeg vil foreslå å bruke gulp-debug-pakken, den lar deg .pipe inn i oppgavene dine og fange standardutdata.

Feilsøk vinyl-filstrømmer for å se hvilke filer som kjøres gjennom gulp-pipelinen din

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'));
})

Du må legge den til i listen over devDependencies i din package.json slik at npm vil installere den.

Svar #2

Jeg støtte på et lignende problem. Å fjerne "noEmit": true, fra min tsconfig.json-fil løste det.

Prøv å fjerne "noEmitOnError": true fra din eller sett den til false.

Relaterte artikler