Transloggfila til Javascript

stemmer
19

Jeg lurer på hvordan er det mulig å transformere Loggfila til Javascript i en cross platform måte. Jeg er klar om tilgjengeligheten av node pakkebehandleren for typescript , men er det noen andre alternativer som kan brukes på serversiden?

Publisert på 01/10/2012 klokken 18:16
kilden bruker
På andre språk...                            


9 svar

stemmer
26

Den maskinskrevet manuskript kompilatoren er bygget i maskinskrevet manuskript, og dermed er tilgjengelig som en JS-fil ( tsc.js) som kan kjøres ved hjelp av omtrent hvilken som helst ES3-compiliant VM eller JS gjennomføring.

Når det er sagt, kompilatoren nåværende fil I / O-infrastruktur støtter bare Node og Windows Scripting Host filen APIer. Hvis du ønsker å anbefale for støtte til et annet miljø, gjerne nå ut til teamet på vår GitHub stedet (tidligere CodePlex )

Svarte 01/10/2012 kl. 18:36
kilden bruker

stemmer
13

Kanskje det er ikke svaret du ønsker, men som alle nevnt, er kompilatoren en JS-fil, så alternativene er alternativene for å utføre en JS-fil.

I Windows er det 2 opplagte, Node og Windows Script Host.

Du vet om noden allerede, det andre alternativet er en komponent som kommer med alle versjoner av Windows (tror jeg), kan du gjøre det slik:

cscript path/to/tsc.js source-file.ts

Du kan se alle kompilatoren alternativer ved bare:

cscript path/to/tsc.js

På Linux antar jeg at du skal kunne bruke (i tillegg til node):

  • V8 stående skall, erstatte nodeeller cscriptmedv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Enhver annen JS løper tilgjengelig på den valgte plattform (et annet svar nevnt Rhino for eksempel)

Oppdatering: En annen svaret tyder kompilatoren API er bare kompatibel med node og Windows Script Host (cscript verktøyet), så hvis korrekt, deretter på Linux må du Node å kompilere Loggfila.

Hvis du er ute etter noe som apt get tsc(eller hva de Linux / Mac pakken ledere er like), jeg tror det er det ikke.

Jeg leste et sted at I / O er optimalisert for Node og Windows Script Host, så hvis du har problemer med alternativer, vil du sannsynligvis ende opp med Node dersom søker plattform uavhengighet.

Oppdatering: En annen svaret her bekrefter det samme om kompatibilitet.

Svarte 03/10/2012 kl. 03:23
kilden bruker

stemmer
5

Konkret på serveren (forutsatt at serveren har node.js tilgjengelig), vil du bare kjøre:

node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]

Du kan kjøre denne kommandoen uten noen innspill filnavn for å se kommandolinje hjelp for tsc.js.

Svarte 01/10/2012 kl. 22:39
kilden bruker

stemmer
3

Jeg har et prosjekt som samler Loggfila til Javascript i Java:

https://github.com/martypitt/typescript4j

Som omtalt i andre svar, dette gjør bruk av Rhino, så har ingen avhengigheter på npmeller node.

Her er et eksempel:

// 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'));

Jeg bruker den i et annet prosjekt - 'Bake' til å utføre on-the-fly samling av Loggfila ressurser innenfor Spring miljøer

Svarte 17/01/2013 kl. 07:35
kilden bruker

stemmer
3

Hvis det er Java som du trenger for å målrette så du kan kjøre tsc.js med Rhino motor som en del av byggeprosessen.

Svarte 02/10/2012 kl. 11:34
kilden bruker

stemmer
2

For å kompilere ts -> JS: node er tilgjengelig for alle vanlige plattformer, slik at jeg ikke klarer å se hvorfor du ønsker å ha en tsc.java når du allerede har en tsc.js. Installere node er ingen big deal. Faktisk er det enklere enn Java.

Når du har din proj.js fil, kan du kopiere det som noensinne distribusjon plattform du ønsker å bruke.

Fra mitt synspunkt, Javascript - eller mer nøyaktig ECMAScript er et alternativ til Java. Så jeg er glad for at jeg slipper å krangle JVM etc å bruke verktøyet. Men hvis du foretrekker Java, så hvorfor engang bry med JS?

Svarte 02/10/2012 kl. 00:12
kilden bruker

stemmer
1

Jeg har lekt med dette, og kan kompilere Loggfila med javascript med følgende kode:

<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>

Det er ikke akkurat ideelt skjønt. Jeg prøver å få noe i gang slik at jeg kan konvertere Loggfila til JS innen C # (ved hjelp av Javascript .NET), men jeg får en stakkoverflyt på ts.addUnit samtalen.

Svarte 02/10/2012 kl. 17:48
kilden bruker

stemmer
1

SublimeText2 Trick Du kan transpile Loggfila til javascript direkte fra SublimeText2 (du trenger node):

Lag en Typescript.sublime-buildfil i /Sublime Text 2/Packages/Usermed dette innholdet:

{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}

så, nå kan du transpile koden med ctrl + B eller cmd + B

Svarte 02/10/2012 kl. 06:46
kilden bruker

stemmer
0

Dette er hva som fungerte for meg:

Først installert typescript node-modulen >> npm install -g typescript. Dette gir en kommandolinje verktøyet tsc.

Neste, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • dette vil transpiledet gulpfile.tsog gulp-config.tsfiler til gulpfile.jsog gulp-config.js. Vi leverer typings/tsd.d.tsfilen som referanse for riktig transpilation.
  • Den typescript node modulen dekker mange alternativer >> tsc -hfor å spesifisere output katalog eller fil, osv .

Håper dette hjelper.

Svarte 23/05/2016 kl. 04:47
kilden bruker

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