javascript - Verfügbare Tools, um TypeScript-Abhängigkeiten automatisch zu lösen und zu ordnen, mit (oder ohne) _references.ts?
Ich versuche, den neuen „_references.ts“-Workflow zu durchschauen, und habe das Gefühl, dass mir etwas fehlt in Bezug auf die Verwendung/Kombination mehrerer Dateien (keine externen Module) und trotzdem korrekt „abhängigkeitsgeordneten“ .js-Code zu erzeugen. Ausgehend vom Standardbeispiel „Greeter“-Template in Visual Studio 2013, ich:
- Refactore die Greeter-Klasse in eine Datei namens greeter.ts
- Wählen Sie die Option „JavaScript-Ausgabe zusammenführen“ auf der Projekteigenschaftsseite aus und ersetzen Sie dies als neues Skriptziel im HTML
- Erstellen Sie eine Datei „_references.ts“ und fügen Sie manuell in der richtigen Reihenfolge Verweise auf meine beiden Quelldateien hinzu, zuerst „greeter.ts“ und dann „app.ts“
Dies kompiliert und läuft einwandfrei. Dank der Funktion "alle .ts-Dateien referenzieren alle anderen im Projekt" verfügbar seit TypeScript 0.9.1, musste ich nie explizit "greeter.ts" von "app.ts" referenzieren. Mit Blick auf ein großes Projekt wird dies sehr praktisch sein.
ABER, das ist nur die halbe Geschichte (es sei denn, ich übersehe etwas... ich bin auch neu in JavaScript, also sehr wahrscheinlich). Was ist mit Werkzeugen, um die Liste in "_references.ts" automatisch zu ordnen (z.B. automatische Generierung)? Mir scheint, dass Visual Studio (TypeScript-Compiler?) bereits die richtige Reihenfolge kennt. Ich möchte eine C#-Anwendung mit vielen Hunderten von Klassen portieren, und es wäre eine gewaltige Aufgabe, diese manuell zu ordnen. Gibt es ein "geplantes" Feature, um dies in 1.0 zu tun, oder sollte ich nach Drittanbieter-Tools suchen? Ich habe grunt-ts gefunden... bin ich auf dem richtigen Weg?
Antwort #1
grunt-ts unterstützt die Erstellung von reference.ts-Dateien schon seit bevor Visual Studio dies unterstützte: https://github.com/basarat/grunt-ts#reference-file-generation
Sie können einen Beispiel-Workflow hier sehen: http://www.youtube.com/watch?v=0-6vT7xgE4Y&hd=1