2017-12-17 5 views
3

Ich versuche, eine NodeJS Befehlszeile app mit Typoskript zu schreiben und ich habe folgendes TSconfig-Datei:tsc --watch Aktualisierung keine Dateien, wenn OutDir in tsconfig.json

{ 
"compilerOptions": { 
    "module": "commonjs", 
    "outDir": "dist" 
}, 
"include": ["src/*.ts"] 
} 

Wenn ich tsc alles funktioniert verwenden wie erwartet (* .js-Dateien erscheinen im Ordner "dist").

Wenn ich jedoch tsc -w ausführen, werden die JS-Dateien zunächst im Ordner dist erstellt, aber nicht aktualisiert, wenn ich eine der TS-Dateien ändere. TSC scheint Änderungen gut zu sehen und zu kompilieren, schreibt aber die eigentlichen js-Dateien nicht.

4:23:04 PM - File change detected. Starting incremental compilation... 
4:23:04 PM - Compilation complete. Watching for file changes. 

Wenn ich den OutDir Parameter aus der TSconfig alles unterlassen, funktioniert (js Dateien aktualisiert werden, wenn ts Dateien chaning). Dies ist keine gewünschte Lösung, da ich möchte, dass die js-Ausgabe im Ordner dist statt in src ist.

Es ist auch richtig funktioniert, wenn ich die tsconfig.json Datei überspringen verwenden und direkt ausführen:

tsc -w --outDir dist src/app.ts 

Bin ich etwas falsch?

Laufen auf win10, tsc 2.6.2, 7.9.0 Knoten

+0

scheint mit diesen spezifischen Versionen von 'richtig in macOS High Sierra zu arbeiten TSC' und Knoten. – tony19

+0

Danke. Ich habe es auch unter Mac getestet und tatsächlich funktioniert es. Es ist also ein Windows-Problem. – Arnelism

Antwort

3

Ich glaube, ich habe das herausgefunden.

Typescript 2.6 kam mit neuer --watch-Implementierung. Beim Downgrade auf 2.5.3 funktioniert alles einwandfrei.

Das scheint also ein Problem mit der neuen --watch-Sache zu sein, die sich unter bestimmten Bedingungen manifestiert (win10, mit outDir in tsconfig).

Berichtet es als einen Fehler in Typoskript issue tracker - https://github.com/Microsoft/TypeScript/issues/20739

0

Für mich durch Deaktivieren der Option festgelegt wurde ‚Verwenden Sie‚sicher write‘(Änderungen speichern in eine temporäre Datei zuerst)‘ in WebStorm:

WebStorm settings

Wenn aktiviert, löscht der IDE und benennt Dateien, die tsc --watch zu verwirren scheint.

(. Um zu sehen, was es tut, tsc --extendedDiagnostics --listEmittedFiles verwenden Erweiterte Protokolle in Arnelism's GitHub issue.)

Verwandte Themen