Azon tűnődöm, hogy hogyan lehetséges az, hogy átalakítsa a géppel történő JavaScript platformfüggetlené módon. Tisztában vagyok vele, hogy léteznek-e csomópont csomagkezelő géppel , de van más alternatíva, amely felhasználható a szerver oldalon?
Átalakítása gépelt be a JavaScript
A géppel fordító épült géppel, és így elérhető a JS fájlt ( tsc.js), hogy lehet futtatni épp olyan ES3-compiliant VM vagy JS végrehajtását.
Igaz, a fordító aktuális fájl I / O csak infrastruktúra támogatja Node és a Windows Scripting Host fájl API-kat. Ha azt szeretné, hogy javasolja támogatást más környezetben, nyugodtan, hogy eljussanak a csapat a GitHub oldalon (Régebben CodePlex )
Lehet, hogy nem a válasz, amit akar, de mint mindenki említettük, a fordító egy JS fájl, így a lehetőségek a lehetőségek a végrehajtó a JS fájlt.
A Windows, van 2 nyilvánvaló is, Node, és a Windows Script Host.
Azt tudni csomópont már, a másik lehetőség egy olyan komponens, ami minden Windows-verziók (azt hiszem), meg tudod csinálni, mint ez:
cscript path/to/tsc.js source-file.ts
Láthatjuk az összes fordító opciók csak:
cscript path/to/tsc.js
Linux Gondolom kell tudni használni (amellett, hogy node):
- V8 önálló héj, cserélje ki
node, vagycscriptav8-shell - ExecJS https://github.com/sstephenson/execjs
Minden más JS futó választható a platform (egy másik válasz említett Rhino például)
Frissítés: Egy másik válasz arra utal, a fordító API csak kompatibilis csomópont és a Windows Script Host (cscript eszköz), tehát, ha megfelelő, akkor a Linux akkor kell Node összeállításához géppel.
Ha keres valamit, mint apt get tsc(vagy bármilyen Linux / Mac csomag vezetők hasonlók), azt hiszem, nincs.
Olvastam valahol, hogy az I / O optimalizált csomópont és a Windows Script Host, ezért ha problémája van a lehetőség, akkor valószínűleg olyan csomópont, ha keresek platform függetlenséget.
Frissítés: A másik válasz itt megerősíti azonos a kompatibilitás.
Konkrétan a szerveren (feltételezve, hogy a szerver node.js elérhető), akkor azt egyszerűen futtatni:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Tudod futtatni ezt a parancsot beavatkozása nélkül fájlneveket, hogy a parancssori segítség tsc.js.
Van egy projekt, amely lefordítja géppel a Javascript Java:
https://github.com/martypitt/typescript4j
Amint azt más válaszokat, ez él a Rhino, így nincs függőségek npmvagy node.
Íme egy példa:
// 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'));
ÉN használ ez a másik projekt - „Bakehouse” elvégzésére on-the-fly összeállítása géppel erőforrások Spring környezetekben
Ha ez a Java, hogy meg kell célozni, akkor lehet futtatni tsc.js a Rhino motor részeként a fordítást.
A fordításhoz ts -> js: node áll rendelkezésre minden közös platformon, így nem értem, miért akarna, hogy egy tsc.java, ha már van egy tsc.js. Telepítése csomópont nem nagy ügy. Sőt, ez könnyebb, mint a Java.
Miután a proj.js fájl, akkor majd másolja azt, ami elveszett telepítési platform kívánja használni.
Az én szempontból, JavaScript - vagy pontosabban ECMAScript alternatívája a Java. Tehát örülök, hogy nem kell összetűzés JVM tartozik az eszköz használatához. De ha inkább a Java, akkor miért is törődjünk JS?
Már játszott körül ez, és összeállítja géppel javascript az alábbi kódot:
<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>
Ez nem éppen ideális, bár. Próbálom, hogy valami fut, így tudok átalakítani géppel JS belül C # (.NET Javascript segítségével), de kapok egy halom túlcsordulás a ts.addUnit hívást.
Ez az, ami nekem dolgozott:
Először telepíteni a typescript csomópont modul >> npm install -g typescript. Ez ad egy parancssori segédprogram tsc.
Következő, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- ez lesz
transpileazgulpfile.ts, ésgulp-config.tsa fájlokatgulpfile.jsésgulp-config.js. Mi a kínálat atypings/tsd.d.tsfájlt, mint hivatkozási helyes transpilation. - A
typescriptcsomópont modul magában foglalja számos lehetőséget >>tsc -hmegadni kimeneti könyvtárat vagy fájlt, stb .
Remélem ez segít.
SublimeText2 trükk Akkor transpile géppel a javascript közvetlenül SublimeText2 (meg kell node):
Hozzon létre egy Typescript.sublime-buildfájlt /Sublime Text 2/Packages/Userezzel a tartalommal:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
akkor, most, akkor transpile a kódot a Ctrl + B vagy cmd + B













