2016-07-02 10 views
6

Ich verwende WebStorm 2016.1.3 für ein Angular 2-Projekt mit Typoskript. Wenn ich den Ts-Compiler in WebStorm aktiviere und eine ts-Datei modifiziere (die dann kompiliert werden soll), erhalte ich die folgende Warnung: Warning:File was not compiled because there is no a reference from tsconfig.json und die Datei wird nicht kompiliert.WebStorm "Warnung: Datei wurde nicht kompiliert, da keine Referenz von tsconfig.json existiert"

Mein Projekt Datei/Ordner-Struktur in der Nähe des Style Guide von Angular 2 empfohlen:

Alle meine ts Dateien sind in einem Ordner script. Die Root-App befindet sich in diesem Ordner und jede Komponente hat ihren eigenen Unterordner, der eine ts und eine html Datei enthält. Shared Services usw. befinden sich in einem Shared Unterordner.

Mein tsconfig sieht wie folgt aus und ist im Projektstammordner (der übergeordneten Ordner des script Ordner):

{ 
    "compilerOptions": { 
    "outDir": "wwwroot/app", 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "inlineSourceMap": true, 
    "inlineSources": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "wwwroot" 
    ] 
} 

Mit Ausnahme der ts Dateien direkt in script alle anderen in WebStorm geöffnet und bearbeitet ts Dateien Ergebnis in der Warnung oben und nicht kompilieren. In der Typoskript-Konsole in WebStorm sagt der Compiler, dass er die geänderte Datei kompiliert hat (d. H. Änderungserkennung scheint zu funktionieren), aber er gibt keine transpilierte Datei aus. Beim Start von WebStorm werden jedoch ALLE Dateien in allen Unterordnern korrekt kompiliert. Auch, wenn ich TSC manuell oder über Schluck benutze bekomme ich keine Probleme und alles kompiliert wie es sollte, was mir sagt, dass meine tsconfig OK ist. Ich habe versucht, meinen eigenen Bereich in den TypScript-Compiler-Optionen von WebStorm anzugeben. Machte keinen Unterschied. Die Option Track changes ist aktiviert. Ich habe es mit und ohne die Option Resolve objects using tsconfig.json probiert. Machte keinen Unterschied.

Ich kann das Ding nicht herausfinden. Hat jemand anderes dieses Problem gefunden - und hoffentlich behoben?

+0

welche "Scope" verwenden Sie? Sollte der Standardwert 'Projektdateien' sein. – anstarovoyt

+0

Ja, das hatte ich zuerst, da es die Standardeinstellung ist. Damals trat das Problem anfänglich auf. Ich änderte den Umfang, um zu sehen, ob es einen Unterschied machte. Es tat es nicht. – hholtij

Antwort

0

Versuche unter Block in tsconfig.json Zugabe

"files": [ 
    "typings/tsd.d.ts", 
    "main.ts" 
    ] 

sehen, ob das hilft.

+0

Das Hinzufügen dieses Blocks führt zu Kompilierungsfehlern. Ich habe keine typings/tsd.d.ts. Meine ist typings/index.d.ts, die ich stattdessen benutzt habe. – hholtij

+0

Webstorm löst keine Dateien, die mit Dateien verknüpft sind, tsc tut – Nikos

1

Bei anderen laufen in dieser Ausgabe:

Ich glaube, ich habe festgestellt, was das Problem verursacht. Einige meiner Dateien hatten etwas ungewöhnliche Schreibweisen (in der Schreibmaschinenwelt). Zum Beispiel wurde einer meiner Dienste "ApiService.ts" geschrieben. Nachdem ich dies in "apiService.ts" geändert habe, ist das Problem verschwunden. Ein anderer wurde "hhPager.component.ts" geschrieben. WebStorm mochte das auch nicht. Ich änderte es nun zu "pager.component.ts" und WebStorm entspannte und benahm sich.

Ich habe es auf JetBrain aufmerksam gemacht und dies ist derzeit (8. Juli 2016) ein Fehler in ihrem Issue Tracker (https://youtrack.jetbrains.com/issue/WEB-22290).

+0

Danke! Ich musste attach-magnify.ts in attachMagnify.ts umbenennen und jetzt intellij kompilieren. Und danke, dass Sie JetBrains auf dieses Problem aufmerksam gemacht haben :) –

+0

Nur eine Beobachtung, wenn 'apiService.ts' funktioniert und' pager.component.ts 'arbeitet, warum zum Teufel würde' hhPager.component.ts' nicht funktionieren? Dies führt dazu, dass 'apiService.component.ts' nicht funktioniert ... Zwei" h "s ist kein Tippfehler ... Ich habe diesen Fehler und die obige Lösung hat nicht geholfen. –