Ich frage mich , wie ist es möglich , die zu transformieren Typoskript in JavaScript in einer Cross - Plattform - Weise. Ich bin mir bewusst über die Verfügbarkeit von Knoten Paketmanager für Typoskript , aber gibt es andere Alternativen , die auf der Serverseite verwendet werden kann?
Transforming Typoskript in JavaScript
quelle vom benutzer Alex Objelean
In anderen Sprachen...
Der Typoskript Compiler wird in Typoskript gebaut, und daher ist als JS - Datei ( tsc.js) , die fast jede ES3-compiliant VM oder JS Implementierung ausgeführt werden können.
Das heißt, die aktuelle Datei - I / O - Infrastruktur Compiler unterstützt nur Knoten und Windows Scripting Host - Datei - APIs. Wenn Sie sich für eine andere Umgebung mögen für die Unterstützung empfehlen, gerne an dem Team in unserer erreichen GitHub Website (ehemals CodePlex )
Vielleicht ist es nicht die Antwort, die Sie wollen, aber wie jeder erwähnt, ist der Compiler eine JS-Datei, so, Ihre Optionen sind die Optionen der Ausführung einer JS-Datei sind.
In Windows gibt es 2 offensichtlichen, Knoten und Windows Script Host.
Sie wissen über Knoten bereits, die andere Option ist eine Komponente, die mit allen Versionen von Windows kommt (ich glaube), können Sie es wie folgt tun:
cscript path/to/tsc.js source-file.ts
Sie können alle Compiler-Optionen sehen nur um:
cscript path/to/tsc.js
Unter Linux gehe ich davon aus, sollten Sie (zusätzlich zu Knoten) verwenden können:
- V8 Standalone - Shell, ersetzen
nodeodercscriptmitv8-shell - ExecJS https://github.com/sstephenson/execjs
Jede andere JS Läufer auf der ausgewählten Plattform (eine andere Antwort erwähnt Rhino zum Beispiel)
Update: Eine andere Antwort schlägt der Compiler API ist nur kompatibel mit Knoten und Windows Script Host (cscript - Tool), so, wenn richtig ist , dann auf Linux Sie Knoten benötigen Typoskript zu kompilieren.
Wenn Sie so etwas wie suchen apt get tsc(oder was auch immer die Linux / Mac - Paket - Manager sind wie), ich glaube , es ist nicht.
Ich erinnere mich, irgendwo, dass die I / O für Knoten und Windows Script Host optimiert ist, so, wenn Sie Probleme mit Optionen haben, werden Sie wahrscheinlich mit Knoten am Ende, wenn die Plattformunabhängigkeit zu suchen.
Aktualisieren Sie : Eine andere Antwort hier das gleiche über die Kompatibilität bestätigt.
Konkret auf dem Server (vorausgesetzt der Server Node.js verfügbar ist), dann würden Sie einfach ausführen:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Sie können diesen Befehl ohne Eingabedateinamen ausführen, um die Befehlszeilenhilfe für tsc.js. zu sehen
Ich habe ein Projekt, das Typoskript zu Javascript in Java erstellt:
https://github.com/martypitt/typescript4j
Wie in anderen Antworten erwähnt, macht diese Verwendung von Rhino, hat also keine Abhängigkeiten von npmoder node.
Hier ein Beispiel:
// Instantiate the compiler:
TypescriptCompiler compiler = new TypescriptCompiler();
// Compile a string:
String output = compiler.compile("class Greeter { greeting: string; }");
// Or, compile and output to a file:
compiler.compile(new File("example.ts"), new File('output.js'));
Ich benutze es in einem anderen Projekt - ‚Bakehouse‘ on-the-fly Kompilierung von Typoskript Ressourcen innerhalb Frühlings Umgebungen auszuführen
Wenn es Java, die Sie zielen müssen, dann könnten Sie tsc.js mit dem Rhino-Engine als Teil des Build-Prozesses ausgeführt werden.
Zum Kompilieren ts -> js: Knoten ist für alle gängigen Plattformen zur Verfügung, so dass ich nicht, warum Sie wollen würde eine tsc.java haben, wenn Sie bereits eine tsc.js. haben Installieren von Knoten ist keine große Sache. In der Tat ist es einfacher als Java.
Sobald Sie Ihre proj.js Datei haben, können Sie dann kopieren Sie es, auf die jemals Deployment-Plattform Sie verwenden möchten.
Aus meiner Sicht, JavaScript - oder genauer gesagt ist ECMAScript eine Alternative zu Java. Deshalb bin ich froh, dass ich muß usw. nicht hadern JVM das Tool zu verwenden. Aber wenn Sie Java bevorzugen, dann die Mühe, warum auch mit JS?
Ich habe mit diesem gespielt herum und kann Typoskript mit Javascript mit dem folgenden Code kompilieren:
<script src=typescript.js></script>
<script>
var scriptText = ""
+ "/// <reference path=\"test.ts\"/>" + "\r\n"
+ "class Car {"
+ " constructor (private name: string) { } "
+ " getName() { "
+ " var juice = new Juice();"
+ " return name; "
+ " } "
+ "} "
+ "var car = new Car('Subaru Impreza');"
+ "console.log(car.getName());";
var TextWriter = function () { };
TextWriter.prototype = {
collected: '',
Write: function (sc) {
this.collected += sc;
},
WriteLine: function(sc) {
this.collected += sc + '\n';
},
toString: function() {
return this.collected;
}
};
var output = new TextWriter();
var tsc = new TypeScript.TypeScriptCompiler(output);
var script = tsc.addUnit(scriptText, "");
tsc.emit();
console.log(output.toString());
</script>
Es ist nicht gerade obwohl ideal. Ich versuche, etwas zu bekommen, laufen, so kann ich Typoskript zu JS in C # (mit Javascript .NET) konvertieren, aber ich bin einen Stapelüberlauf auf dem ts.addUnit Anruf bekommen.
Dies ist, was für mich gearbeitet:
Zuerst installiert , um den typescript Knotenmodul >> npm install -g typescript. Daraus ergibt sich ein Kommandozeilenprogramm tsc.
Nächster, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- dies wird
transpilediegulpfile.tsundgulp-config.tsDateiengulpfile.jsundgulp-config.js. Wir liefern dietypings/tsd.d.tsDatei als Referenz für die korrekte transpilation. - Der
typescriptKnotenmodul deckt viele Optionen >>tsc -hangeben Ausgabeverzeichnis oder Datei etc. .
Hoffe das hilft.
SublimeText2 Trick Sie Typoskript Javascript direkt von SublimeText2 transpile können (Sie müssen Knoten):
Erstellen Sie eine Typescript.sublime-buildDatei in /Sublime Text 2/Packages/Usermit diesem Inhalt:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
dann, jetzt, können Sie Ihren Code mit Strg + B oder cmd + B transpile