2014-11-08 17 views
18

Seit Typoskript doesn't seem to support absolute path references kann ich nicht sehen, wie ich meine Referenzen sauber halten kann. Ich habe ts Dateien an vielen verschiedenen Orten in meiner Ordnerstruktur, und muss sehr vorsichtig sein, ob ich meine ..\Scripts\typings\jquery\jquery.d.ts oder ..\..\Scripts\typings\jquery\jquery.d.ts scheint wirklich kludgy.Wie kann ich auf Typoskript-Dateien ohne absolute Pfade verweisen?

Gibt es eine beliebige Möglichkeit, einen Stammverweis-Ordner anzugeben, so dass ich nicht alle Pfade relativ zum aktuellen Dateipfad angeben muss, was für jeden Ordner anders ist?

+0

Ein Pfad wie '' sollte funktionieren. Das Problem, mit dem Sie verbunden sind, wird als behoben angezeigt (und ich habe bestätigt, dass es funktioniert). – WiredPrairie

+1

Hmm, das ist besser als schlampige Verweise, aber das Festschreiben der Verzeichnisstruktur bedeutet, dass der Speicherort in meinem Dateisystem in die Dateien eingebettet ist, was auf anderen Rechnern nicht funktioniert. Sicherlich sollte Typescript root-relative Pfade unterstützen, dh '/ Scripts/typings/...' –

+0

Leider unterstützt es nicht so etwas, da jede Datei unabhängig in eine JavaScript-Datei kompiliert werden kann, so dass es keinen Nutzen gibt Definierter Speicherort für einen Stammpfad. Das Team ist sehr gut darin, Feedback zu Github zu hören. – WiredPrairie

Antwort

17

Es gibt derzeit keine Möglichkeit, einen Ordner root anzugeben, der in Referenzen verwendet werden soll.

Absolute Dateipfade funktionieren zwar, aber die Pflege der Pfade im Allgemeinen mit mehreren Entwicklern macht dies wahrscheinlich für viele TypeScript-Entwicklungsprojekte zu einem Problem.

Es gab discussions auf CodePlex zum Beispiel, die eine ähnliche Anfrage (aber ohne eine Auflösung) ausgedrückt. Da TypeScript-Dateien Stand-alone sind, haben sich einige Sorgen darüber gemacht, dem Compiler ein projektähnliches Schema zu geben.

Einige Entwickler werden die am häufigsten benötigten Referenzen in einer einzigen Datei (z. B. _references.d.ts) und Referenzen auf die Definitionsdateien dort auflisten. Dann wird diese Datei von anderen TypeScript-Dateien referenziert. Es vereinfacht, ist aber nicht das Problem vollständig beseitigen (wie Sie noch relative Dateireferenzen mit N Ebenen Verzeichnis popping potenziell verwenden müssen):

/// <references path="../../../_references.d.ts." /> 

Je nachdem, wie viele Dateien, die Sie haben und die Größe der Definitionen Sie können jedoch feststellen, dass der Kompiliervorgang länger dauert, wenn Dateien einzeln kompiliert werden (da möglicherweise nicht verwendete Definitionen aus der Datei _references.d.ts abgerufen werden). (Wenn Sie zum Beispiel "Compile on save" in einer IDE aktiviert haben).

+0

Ich bin mir nicht sicher, wie Typescript im Allgemeinen funktionieren sollte, aber es scheint mir, dass Visual Studio Werkzeuge überlagern könnte, um absolute Pfade zu erkennen, vielleicht unter Verwendung der allgemeinen ~/ASP.NET-Konvention. Irgendein Grund, das nicht zu tun? –

+0

Der TypeScript-Compiler wird separat geliefert ... mit den richtigen Anpassungen an den TSC-Compiler, ja, ein '~/defs/etc.d.ts.' könnte funktionieren. – WiredPrairie

+0

Wenn Sie in Visual Studio die Dateien .d.ts mindestens über nuget herunterladen, müssen Sie die Verweise nicht einfügen. Das ist großartig, aber Sie können nur eine IDE verwenden. –

0

Um Ihre relative Pfadreferenzen ordentlich zu halten, Pfad-Alias ​​angeben (n) in Ihre tsconfig.json

Zunächst einmal installieren tspath ein npm Werkzeug für ts Wege HINWEIS Lösung: tspath erfordert ein sehr neue Versison von Knoten!

npm install -g tspath 

Als Nächstes fügen Aliase Pfad

"baseUrl": "./", 
    "paths": { 
    "@Scripts/*": ["./Scripts/typings/jquery/*"], 
    "@Plugins/*": ["./MyPlugins/V2/*"] 
    } 

Jetzt Ihr Alias ​​verwenden, um tsconfig.json wenn Ihre Skripte

@Scripts/jquery 
@Plugins/myPlugin 

Referenzierung Nachdem Sie den Typoskript Compiler ausgeführt haben, aus Ihrem Projektverzeichnis , Lauf:

tspath 

oder

tspath -f 

die Eingabeaufforderung überspringen!

Lesen Sie mehr unter: https://www.npmjs.com/package/tspath

Hoffnung das ist, was Sie gefragt!

Verwandte Themen