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.
