Átalakítása gépelt be a JavaScript

szavazat
17

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?

A kérdést 01/10/2012 19:16
a forrás felhasználó
Más nyelveken...                            


9 válasz

szavazat
25

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 )

Válaszolt 01/10/2012 19:36
a forrás felhasználó

szavazat
12

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, vagy cscriptav8-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.

Válaszolt 03/10/2012 04:23
a forrás felhasználó

szavazat
5

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.

Válaszolt 01/10/2012 23:39
a forrás felhasználó

szavazat
3

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

Válaszolt 17/01/2013 08:35
a forrás felhasználó

szavazat
3

Ha ez a Java, hogy meg kell célozni, akkor lehet futtatni tsc.js a Rhino motor részeként a fordítást.

Válaszolt 02/10/2012 12:34
a forrás felhasználó

szavazat
2

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?

Válaszolt 02/10/2012 01:12
a forrás felhasználó

szavazat
1

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.

Válaszolt 02/10/2012 18:48
a forrás felhasználó

szavazat
0

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 transpileaz gulpfile.ts, és gulp-config.tsa fájlokat gulpfile.jsés gulp-config.js. Mi a kínálat a typings/tsd.d.tsfájlt, mint hivatkozási helyes transpilation.
  • A typescript csomó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.

Válaszolt 23/05/2016 04:47
a forrás felhasználó

szavazat
0

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

Válaszolt 02/10/2012 07:46
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more