Sie können besser als eine Umbenennung-basierte Lösung. Im Augenblick ist das Problem, wenn Sie tsc
aufrufen, wird das -w
() Flag von compilerOptions.watch
Wert überschrieben, der in Ihrem tsconfig.json
angegeben wird (das sich in demselben Verzeichnis befindet, in dem das tsc
-Skript in aufgerufen wird). Wir verwenden eine in TypeScript 2.1 eingeführte Funktion: configuration inheritance.
der Basis-Konfiguration, tsconfig.json
(one-off-Modus)
schreiben, was das typische Verhalten hier sein sollte. Dies wird unsere Basis (Standard) tsconfig
Datei sein.
{
"compilerOptions": {
"watch": false,
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"inlineSources": true,
"strictNullChecks": true
}
}
Erweiterung Config tsconfig_w.json
(Watch-Modus)
Jetzt schreiben wir eine Erweiterung für sie, bei der eine einzelne Eigenschaftsänderungen ist: compilerOptions.watch
zu true
außer Kraft gesetzt wird.
{
"extends": "./tsconfig.json",
"compilerOptions": {
"watch": true
}
}
Kommandozeilenaufruf von tsc
Bevor wurden Aufrufen Sie tsc
ohne weitere Argumente bereitstellt. Nun sollten Sie explizit angeben, welche tsconfig
es lesen soll.
One-off: tsc --project tsconfig.json
(dies ist die Standarddatei verwenden werden, aber sie explizit sein).
Watch: tsc --project tsconfig_w.json
Hinweis: Die --project
Flagge in TypeScript 1.8 eingeführt wurde.
Sonderausstattung für Bequemlichkeit: package.json
Ich neige dazu, diese so bequem Skripte in meine package.json
zu schreiben:
"scripts": {
"lib": "./node_modules/.bin/tsc --project tsconfig.json",
"libw": "./node_modules/.bin/tsc --project tsconfig_w.json"
}
würden Sie dann einfach laufen npm run lib
oder npm run libw
je nachdem, welches Skript benötigt.
Hinweis: Ich habe den Pfad zu TypeScript lokal und nicht global angegeben (da ich ihn nicht global installiert habe).
bitte, was ist der Unterschied zwischen TSC und TSC-W? – stackdave
-w ist ein Parameter, der für "watch" steht. Das bedeutet, dass der TSC-Compiler nach dem Compiler-Code geöffnet bleibt und immer dann, wenn sich eine TS-Datei in Ihrem Projekt ändert, kompiliert der Compiler die Projektdateien automatisch neu Projekt ist aktuell. Ich hoffe, das hilft! – jlang
danke @jlang, aber Sie wissen, warum im neuen Tutorial angular2, Skript starten zweimal tsc laufen: TSC und TSC-W, wenn ich aktiv log, kompilieren sie zweimal; ich finde kein send: "start": "tsc && gleichzeitig" npm run tsc: w \ "\ npm run lite \" ", siehe https://angular.io/docs/ts/latest/quickstart.html – stackdave