2016-05-24 30 views
7

To jest coś, co kilka dni temu działało dobrze, więc nie jestem pewien, co zmieniło się od tego czasu (poza aktualizowaniem do programu ASP.NET Core RC2 i instalowania rozszerzenia dla VS2015 o ile pamiętam)Błędy kompilacji maszynopisu nie są wyświetlane w VS2015 przy użyciu gulp-maszynopisu

kwestia jest taka, że ​​podczas pracy z VS2015 zadanie haustem skompilować moje maszynopisu plików, jeśli jest błąd to pokazuje na przykład:

[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. 

bez opisu błędu .

w CMD:

$ tsc -v 
Version 1.8.10 

W konsoli VS2015 Package Manager:

PM> tsc -v 
Version 1.8.10 

więc myślę VS2015 jest przynajmniej przy użyciu tego samego kompilatora maszynopis na drodze i że nie powinno być problemu. Również jest to najnowsza wersja, ale próbowałem z 1.7 i to samo się dzieje.

Moim zadaniem łyk:

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

i używam:

"gulp-typescript": "2.10.0" 

chociaż starałem się najpóźniej:

"gulp-typescript": "2.13.4" 

bez powodzenia.

Jak zrozumiałem, nie potrzebuję pliku tsconfig.json w katalogu głównym mojego projektu, ponieważ używam gulp-typescript i już przechodzę przez kompilatorOptions w samym zadaniu, więc usunąłem tsconfig.json, który miałem ponieważ nie wydaje się być używane.

Jeśli usunąć wszystkie compilerOptions z mojego zadania haustem:

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

uzyskać więcej błędów semantycznych również bez opisu.

[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. 

, więc opcje są zdecydowanie używane.

A jeśli w moim CMD I przejdź do folderu gdzie mam maszynopis i spróbować skompilować go z:

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

mogę poprawnie wyświetlić wszystkie błędy maszynopis kompilacji.

Każdy pomysł, co może być nie tak w moim VS2015 lub moim maszynopisie?

UPDATE: Próbowałem z łykiem-TSC zamiast łykać-maszynopis i to działa dobrze. więc problem musi być z łykiem-maszynopisu

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

Mam ten sam problem z VS2015 + gulp-typecript na maszynie mojego kolegi z drużyny, jego terminal pokazuje ukryte 'N błędów semantycznych'. Konfiguracja projektu jest identyczna, ale na moim terminalu widzę dokładne opisy błędów. – Cubius

+0

Moje bieżące obejście polega na przełączeniu się na "Build + IntelliSense" w oknie "Lista błędów" VS i skorzystaniu z informacji tam, aby naprawić błędy. – user764754

Odpowiedz

3

Jeśli masz zainstalowany Microsoft Tool.Net Core 1.0.0 RC2 Tooling Preview 1. Wygląda na to, że jest to problem: After installing Preview 1 of the tooling, TypeScript errors aren't shown #526

aktualizowany po wydaniu Net rdzeń 1/Oprzyrządowanie Preview 2

Aktualizacja do/Instalacja wersji systemu .NET 1.0, który aktualizuje rdzenia oprzyrządowania do Preview 2 Postanawia ten przypadek.

enter image description here

Wcześniej odinstalowanie podglądzie oprzyrządowania 1 i ponowne zainstalowanie narzędzia programistyczne WWW dla VS 2015 by rozwiązać problem, gdzie dane o błędach nie są wyświetlane.

Miałem ten sam problem. Ponieważ nie używałem funkcji .Net Core 1 RC2 Preview. Udało mi się rozwiązać problem z maszynopis błędów nie są pokazane z obejścia wymienionej w raporcie bug na Github przez:

  1. deinstalacji „Microsoft .Net Rdzeń 1.0.0 RC2 - VS 2015 Oprzyrządowanie Preview 1” enter image description here
  2. Ponowne instalowanie narzędzi do tworzenia aplikacji sieciowych dla Visual Studio 2015 w add/remove visual studio, Modyfikuj. enter image description here

Po wykonaniu więc mogłem po raz kolejny zobaczyć komunikaty o błędach maszynopis w zadaniu Runner Explorer. enter image description here

4

mam znaleźć część odpowiedzi przynajmniej.jeśli uruchomisz polecenie gulp-maszynopis z wiersza poleceń nodejs, pokaże ci błędy. Sposób w jaki gulp-maszynopis drukuje komunikaty o błędach, nie jest jednak widoczny w programie Visual Studio Runner.

jeśli zmienić reporter używany maszynopisu to pokazuje błędy w porządku (dodaj tę funkcję do 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 
    }; 
} 

I teraz można korzystać z reporterem tak

var ts = require("gulp-typescript") 

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

prawdopodobnie oczywiste, ale icymi 'var gutil = require ('gulp-util');' który odnosi się do https://www.npmjs.com/package/gulp-util. Niesamowite rozwiązanie btw, dziękuję! –

Powiązane problemy