2016-11-02 2 views
0

Wir verwenden derzeit RequireJS mit CoffeeScript, um benutzerdefinierte JS-Dateien zu generieren. Wir verwenden jedoch nicht das Compiler-Tool "r.js", um den Code mit dem Header "define" zu optimieren. Unsere aktuelle Implementierung erfordert, dass wir die volle define Anweisung am Anfang jeder Kaffee-Datei setzen:Die beste Methode zum Erstellen einer einzelnen JavaScript-Datei für alle meine Seiten mit Typescript

define('charts/bar', ['charts/base','constants'], (BaseModel, Constants) -> 
    class BarChart extends BaseModel 
    ... 

Wir suchen nach Typoskript bewegen, so können wir den Einsatz von Refactoring und all der anderen Güte machen, die mit ihm kommt. Das Problem, auf das wir stoßen, ist, dass wir nicht herausfinden konnten, wie wir alle unsere TypeScript-Dateien in einer einzigen Datei kompilieren.

Zum Beispiel nehmen die folgenden Dateien:

  • Charts/
    • bar.ts
    • line.ts
    • base.ts
  • Benutzer/
    • profile.ts
    • security.ts
    • friends.ts
  • data/
    • geo.ts
    • population.ts
    • voting.ts

Mit all diesen Dateien möchten wir sie in eine einzige Datei namens utils.js setzen und diese js-Datei über mehrere Seiten hinweg wiederverwenden. Eine Seite verwendet möglicherweise nur die Benutzer/Sicherheit Klasse, während die nächste Seite möglicherweise die Daten/geo Klasse zusammen mit einigen der verschiedenen Tabelle Klassen verwenden.

Wie können wir dies mit Requirejs konstruieren?

Hinweis: Eine Sache zu beachten ist, dass wir keinen einzigen Einstiegspunkt für diese Klasse haben. Es dient ausschließlich dazu, Hilfsklassen und Basisimplementierungen zu verwenden, die wir in anderen Klassen erweitern können.

+0

Bündelung ist kein Typoskript Sorge. Typescript erzeugt die passenden JS-Dateien für Sie (einschließlich der Definitionsblöcke), aber das Zusammenfügen sollte die Arbeit Ihres Bundlers sein (browserify/uglify/r.js/etc.). – Paarth

Antwort

1

Wie können wir dies mit requirjs konstruieren?

Verwenden Sie import/require und kompilieren Sie mit Option --module amd.

Mehr

https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

PS: sehr empfehlen Commonjs bewegen.Aber das ist autorisiert

+0

Danke für die Information. Das hatten wir schon, aber es fehlten zwei Schalter. Wir haben den Compiler zweimal aufgerufen: "outDir" (schreibt alle Dateien in dieses Verzeichnis) und "out" (schreibt alle Ausgaben in eine Datei) sind die zwei Schalter. Was die Verwendung von commonjs angeht, können wir dies nicht tun, da wir keine nodejs verwenden. Danke noch einmal! – Luc

Verwandte Themen