2016-09-08 18 views
7

mam ten plik, sklejony z samouczka (i nie oszukujmy się, dysproporcja między docs, tuts i przykładów jest zdumiewający):Dlaczego kompilator TypeScript ignoruje tsconfig.json?

/scripts/tsconfig.json:

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

opcje są zestaw do kompilacji na zapisywanie, ale kiedy tylko zapisać plik maszynopisu, wyjście JavaScript kończy się „w” lub „dołączony do” plik źródłowy:

TypeScript 
| 
--test.ts 
    | 
    --test.js 

, a to jest fizycznie w tym samym katalogu, co źródło, /TypeScript. Jeśli brakuje tsconfig.json, kompilator narzeka, ale gdy jest obecny i na pewno jest, kompilator ignoruje ustawienie "outDir": "../wwwroot/appScripts/".

Jestem naprawdę nowego do haustem, ale zadanie Gulp wygląda OK do mnie:

var tsProject = ts.createProject('scripts/tsconfig.json'); 
gulp.task('ts', function (done) { 
    //var tsResult = tsProject.src() 
    var tsResult = gulp.src([ 
      "scripts/*.ts" 
    ]) 
     .pipe(ts(tsProject), undefined, ts.reporter.fullReporter()); 
    return tsResult.js.pipe(gulp.dest('./wwwroot/appScripts')); 
}); 
+0

Co jest 'ts'? Czy to jest ten moduł maszynopisu? https://www.npmjs.com/package/gulp-typescript –

+0

Co to jest oglądanie do kompilacji przy zapisie? –

Odpowiedz

3

opcje są ustawione na kompilacji na Zapisz

Po zapisaniu pliku to jest automatycznie kompiluje ten pojedynczy plik i pliki zaimportowane do tego pliku. Wyłącz opcję automatycznego kompilowania z IDE, aby kompilator rozważył plik tsconfig.json.

Po wpisaniu plików wejściowych w wierszu poleceń, pliki tsconfig.json są ignorowane.

Obecność pliku tsconfig.json w katalogu wskazuje, że katalog jest katalogiem głównym projektu TypeScript. Plik tsconfig.json określa pliki root i opcje kompilatora wymagane do kompilacji projektu. Projekt jest skompilowany w jeden z następujących sposobów:

Korzystanie tsconfig.json

  1. Powołując TSC bez plików wejściowych, w tym przypadku kompilator przeszukuje plik tsconfig.json począwszy od prądu katalog i kontynuowanie łańcucha nadrzędnego katalogu.

  2. Wywołując tsc bez plików wejściowych i opcję wiersza polecenia -project (lub just -p), która określa ścieżkę do katalogu zawierającego plik tsconfig.json.

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

+0

Dzięki za tę odpowiedź! To doprowadzało mnie do szału, dopóki nie przypomniałem sobie, że dodałem ostatnio "" compileOnSave ": true 'to my tsconfig.json. – Knotty66

Powiązane problemy