Trasformare dattiloscritto in JavaScript

voti
17

Mi chiedo come è possibile trasformare il dattiloscritto in JavaScript in modo cross platform. Sono consapevole circa la disponibilità di nodo del gestore di pacchetti per dattiloscritto , ma ci sono altre alternative che possono essere utilizzati sul lato server?

È pubblicato 01/10/2012 alle 19:16
fonte dall'utente
In altre lingue...                            


9 risposte

voti
25

Il compilatore tipografico è costruito a macchina, e quindi è disponibile come file JS ( tsc.js) che può essere eseguito utilizzando praticamente qualsiasi implementazione VM o JS-ES3 compiliant.

Detto questo, l'attuale infrastruttura di file di I / O del compilatore supporta solo nodo e le API di file Windows Scripting Host. Se vuoi consigliare per il supporto per un altro ambiente, sentitevi liberi di entrare in contatto con il team presso il nostro sito GitHub (precedentemente CodePlex )

Risposto il 01/10/2012 a 19:36
fonte dall'utente

voti
12

Forse non è la risposta che desidera, ma come tutti accennato, il compilatore è un file JS, quindi, le opzioni sono le opzioni di esecuzione di un file JS.

In Windows, ci sono 2 quelli ovvi, Host Nodo, e Windows Script.

Sai di nodo già, l'altra opzione è un componente che viene fornito con tutte le versioni di Windows (credo), si può fare in questo modo:

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

Potete vedere tutte le opzioni di compilazione da solo:

cscript path/to/tsc.js

Su Linux Presumo si dovrebbe essere in grado di utilizzare (oltre al nodo):

  • V8 shell standalone, sostituire nodeo cscriptconv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Qualsiasi altro corridore JS disponibile sulla piattaforma selezionata (un'altra risposta citato rinoceronte per esempio)

Aggiornamento: Un'altra risposta suggerisce l'API compilatore è compatibile solo con nodo e Windows Script Host (strumento cscript), quindi, se corretto, quindi su Linux è necessario Nodo compilare dattiloscritto.

Se siete alla ricerca di qualcosa di simile apt get tsc(o qualsiasi altra cosa i gestori di pacchetti Linux / Mac sono simili), penso che non c'è.

Ricordo di aver letto da qualche parte che l'I / O è ottimizzato per Node e Windows Script Host, quindi, se avete problemi con le opzioni, probabilmente vi ritroverete con il nodo se in cerca di indipendenza dalla piattaforma.

Aggiornamento: Un'altra risposta qui conferma la stessa cosa di compatibilità.

Risposto il 03/10/2012 a 04:23
fonte dall'utente

voti
5

Concretamente, sul server (supponendo che il server ha Node.js disponibili), si sarebbe semplicemente eseguire:

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

È possibile eseguire il comando senza i nomi dei file di input per consultare la guida della riga di comando per tsc.js.

Risposto il 01/10/2012 a 23:39
fonte dall'utente

voti
3

Ho un progetto che raccoglie tipografico a JavaScript in Java:

https://github.com/martypitt/typescript4j

Come discusso in altre risposte, questo si avvale di Rhino, quindi non ha dipendenze npmo node.

Ecco un esempio:

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

Io lo uso in un altro progetto - 'Bakehouse' per eseguire la compilazione on-the-fly delle risorse dattiloscritto all'interno degli ambienti di primavera

Risposto il 17/01/2013 a 08:35
fonte dall'utente

voti
3

Se si tratta di Java che è necessario indirizzare allora si potrebbe eseguire tsc.js con il motore Rhino come parte del processo di generazione.

Risposto il 02/10/2012 a 12:34
fonte dall'utente

voti
2

Per compilare ts -> js: il nodo è disponibile per tutte le piattaforme più comuni, quindi non riesco a capire il motivo per cui ci si vuole avere un tsc.java quando si dispone già di un tsc.js. L'installazione del nodo è un grosso problema. In realtà, è più facile che Java.

Una volta ottenuto il file di proj.js, è possibile quindi copiarlo piattaforma mai di distribuzione che si desidera utilizzare per la quale.

Dal mio punto di vista, JavaScript - o più precisamente ECMAScript è un'alternativa a Java. Quindi sono felice di non dover disputare JVM ecc per utilizzare lo strumento. Ma se si preferisce Java, allora perché nemmeno con JS?

Risposto il 02/10/2012 a 01:12
fonte dall'utente

voti
1

Ho giocato in giro con questo, e riesco a compilare dattiloscritto con javascript con il seguente codice:

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

Non è esattamente l'ideale però. Sto cercando di ottenere qualcosa in esecuzione in modo da poter convertire il dattiloscritto di JS all'interno di C # (utilizzando Javascript NET), ma sto ottenendo un overflow dello stack sulla chiamata ts.addUnit.

Risposto il 02/10/2012 a 18:48
fonte dall'utente

voti
0

Questo è ciò che ha funzionato per me:

In primo luogo, installato il typescript modulo di nodo >> npm install -g typescript. Questo dà una linea di comando tsc.

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

  • questo sarà transpilel' gulpfile.tse gulp-config.tsfile da gulpfile.jse gulp-config.js. Forniamo il typings/tsd.d.tsfile come riferimento per la corretta transpilation.
  • Il typescript modulo di nodo copre molte opzioni >> tsc -hper specificare la directory di output o un file, ecc .

Spero che questo ti aiuti.

Risposto il 23/05/2016 a 04:47
fonte dall'utente

voti
0

SublimeText2 trucco È possibile transpile dattiloscritto a JavaScript direttamente da SublimeText2 (è necessario nodo):

Creare un Typescript.sublime-buildfile in /Sublime Text 2/Packages/Usercon questo contenuto:

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

quindi, ora, è possibile transpile il codice con Ctrl + B o cmd + B

Risposto il 02/10/2012 a 07:46
fonte dall'utente

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