2016-05-24 30 views
7

Questo è qualcosa che alcuni giorni fa funzionava correttamente, quindi non sono sicuro di cosa sia cambiato da allora (oltre all'aggiornamento a ASP.NET Core RC2 e all'installazione di alcune estensioni per VS2015 come ricordo)Errori di compilazione di dattiloscritto non visualizzati in VS2015 utilizzando dattilografo gulp

il problema è che quando si esegue da VS2015 un compito Gulp per compilare i miei file tipografico, se si verifica un errore si vede ad esempio:

[10:02:54] Compiling typescript into javascript 
[10:02:56] TypeScript: 1 semantic error 
[10:02:56] TypeScript: emit succeeded (with errors) 
[10:02:56] Finished 'compile' after 2.47 s 
Process terminated with code 0. 

senza alcuna descrizione dell'errore .

in CMD:

$ tsc -v 
Version 1.8.10 

Nella console VS2015 Package Manager:

PM> tsc -v 
Version 1.8.10 

quindi penso che VS2015 è almeno utilizzando lo stesso compilatore dattiloscritto in PATH e che non dovrebbe essere un problema. Anche questa è l'ultima versione ma ho provato con 1.7 e succede la stessa cosa.

Il mio compito sorso:

gulp.task('compile', function() { 
    log('Compiling typescript into javascript'); 
    return gulp 
      .src(config.allts) 
      .pipe($.sourcemaps.init()) 
      .pipe($.typescript({ 
       noImplicitAny: true, 
       target: 'ES5' 
      })) 
      .pipe($.sourcemaps.write('.')) 
      .pipe(gulp.dest(config.compileFolder)); 
}); 

e sto usando:

"gulp-typescript": "2.10.0" 

anche se ho provato con l'ultimo:

"gulp-typescript": "2.13.4" 

senza fortuna.

Come ho capito, non ho bisogno di un tsconfig.json alla radice del mio progetto poiché sto usando gulp-typescript e sto passando già il compilerOptions nel task gulp stesso, quindi ho eliminato il file tsconfig.json che avevo perché non sembra essere usato.

Se rimuovo tutte le compilerOptions dal mio compito sorso:

gulp.task('compile', function() { 
    log('Compiling typescript into javascript'); 
    return gulp 
      .src(config.allts) 
      .pipe($.sourcemaps.init()) 
      .pipe($.typescript({ 
       //removed 
      })) 
      .pipe($.sourcemaps.write('.')) 
      .pipe(gulp.dest(config.compileFolder)); 
}); 

ho più errori semantici anche senza descrizione.

[10:12:57] Compiling typescript into javascript 
[10:13:00] TypeScript: 184 semantic errors 
[10:13:00] TypeScript: emit succeeded (with errors) 
[10:13:01] Finished 'compile' after 3.83 s 
Process terminated with code 0. 

quindi le opzioni sono sicuramente in uso.

E se nella mia CMD vado alla cartella in cui ho un dattiloscritto e provo a compilare con:

C:/>Sample/app> tsc mytestfile.ts 

posso correttamente vedere tutte le errori di compilazione dattiloscritto.

Qualche idea di cosa potrebbe essere sbagliato nel mio VS2015 o nel mio dattiloscritto?

UPDATE: Ho provato con gulp-tsc invece gulp-dattiloscritto e funziona bene. Quindi il problema deve essere con gulp-dattiloscritto

gulp.task('compile', function() { 
    log('Compiling typescript into javascript'); 
    return gulp 
      .src(config.allts) 
      .pipe($.sourcemaps.init()) 
      .pipe($.tsc({ 
       noImplicitAny: true, 
       target: 'ES5' 
      })) 
      .pipe($.sourcemaps.write('.')) 
      .pipe(gulp.dest(config.compileFolder)); 
}); 
+0

Ho lo stesso problema con VS2015 + gulp-typecript sulla macchina del mio compagno di squadra, il suo terminale mostra gli errori semantici "N" criptici. La configurazione del progetto è identica, ma sul mio terminale posso vedere le descrizioni esatte degli errori. – Cubius

+0

La mia soluzione attuale è di passare a "Build + IntelliSense" nella finestra "Elenco errori" di VS e utilizzare le informazioni lì per correggere gli errori. – user764754

risposta

3

Se è installato Microsoft .Net Core 1.0.0 RC2 Tooling Preview 1. Sembra che c'è un problema: After installing Preview 1 of the tooling, TypeScript errors aren't shown #526

aggiornato dopo il rilascio di .Net Nucleo 1/Utensili Preview 2

Aggiornamento a/installazione della versione di rilascio di .Net core 1.0 che aggiorna il Tooling per Preview 2 risolve questa edizione.

enter image description here

Prima di questo disinstallare il tooling anteprima 1 e re-installazione di strumenti di sviluppo web per la vs 2015 sarebbe risolvere il problema per cui i dettagli di errore non vengono visualizzati.

Ho avuto lo stesso problema. Poiché non stavo usando la funzionalità di .Net Core 1 RC2 Preview. Sono stato in grado di risolvere il problema con gli errori dattiloscritto non essere mostrate con la soluzione di cui al bug report su Github da:

  1. disinstallazione 'Microsoft .Net Nucleo 1.0.0 RC2 - VS 2015 Tooling Preview 1' enter image description here
  2. Reinstallazione degli strumenti di sviluppo Web per Visual Studio 2015 in Aggiungi/Rimuovi Visual Studio, Modifica. enter image description here

Dopo questo modo ho potuto ancora una volta vedere i messaggi di errore dattiloscritto in Task Runner Explorer. enter image description here

4

ho trovato parte della risposta, almeno.se esegui gulp-typescript da un prompt dei comandi nodejs, ti mostrerà gli errori. Il modo in cui gulp-dattiloscritto sta stampando i messaggi di errore, tuttavia non è mostrato in Visual Studio.

Se cambio il giornalista utilizzato per dattiloscritto a questo si mostra gli errori più che bene (aggiungere questa funzione per i tuoi gulpfile.js)

function visualStudioReporter() { 
    return { 
     error: function (error) { 
      //This works 
      gutil.log("Typescript: error", error.message); 
      //This isn't shown 
      console.error(error.message); 
     }, 
     finish: ts.reporter.defaultReporter().finish 
    }; 
} 

e ora è possibile utilizzare il reporter come questo

var ts = require("gulp-typescript") 

gulp.task("compile", function() { 
    gulp.src("./**/*.ts") 
     .pipe(ts(tsProject, undefined, visualStudioReporter())) 
}); 
+0

probabilmente ovvio, ma icymi 'var gutil = require ('gulp-util');' che si riferisce a https://www.npmjs.com/package/gulp-util. Incredibile soluzione, grazie! –