Me pregunto cómo es posible transformar el texto mecanografiado en JavaScript de manera multiplataforma. Soy consciente acerca de la disponibilidad del gestor de paquetes nodo de texto mecanografiado , pero ¿existen otras alternativas que pueden utilizarse en el lado del servidor?
La transformación de mecanografiado en JavaScript
fuente por usuario Alex Objelean
En otros idiomas...
El compilador mecanografiado se construye a máquina de escribir, y por lo tanto está disponible como un archivo JS ( tsc.js) que se puede ejecutar utilizando casi cualquier máquina virtual o aplicación JS-ES3 compiliant.
Dicho esto, la infraestructura archivo de E / S actual del compilador sólo es compatible con nodos y las API de archivos de Windows Scripting Host. Si desea recomendar para el apoyo a otro entorno, no dude en llegar al equipo en nuestro sitio de GitHub (Anteriormente CodePlex )
Tal vez no es la respuesta que desea, pero como todo el mundo ha mencionado, el compilador es un archivo JS, así, sus opciones son las opciones de ejecución de un archivo JS.
En Windows, hay 2 que son obvios, Nodo, y Windows Script Host.
Usted sabe acerca nodo ya, la otra opción es un componente que viene con todas las versiones de Windows (creo), puede hacerlo de esta manera:
cscript path/to/tsc.js source-file.ts
Puede ver todas las opciones del compilador por solo:
cscript path/to/tsc.js
En Linux supongo que debe ser capaz de usar (además de nodo):
- V8 cáscara independiente, reemplace
nodeocscriptconv8-shell - ExecJS https://github.com/sstephenson/execjs
Cualquier otro corredor JS disponible en la plataforma seleccionada (otra respuesta menciona Rhino por ejemplo)
Actualización: Otra respuesta sugiere la API compilador sólo es compatible con el nodo y Windows Script Host (herramienta cscript), por lo que, si es correcta, entonces en Linux que necesita para compilar Nodo mecanografiado.
Si usted está buscando algo así como apt get tsc(o lo que los gestores de paquetes de Linux / Mac son similares), creo que no lo es.
Recuerdo haber leído en alguna parte que la E / S está optimizado para el nodo y Windows Script Host, por lo que, si usted tiene problemas con las opciones, que probablemente va a terminar con el Nodo si la búsqueda de la independencia de plataforma.
Actualización: Otra respuesta aquí confirma lo mismo acerca de la compatibilidad.
Concretamente, en el servidor (asumiendo que su servidor tiene Node.js disponibles), usted sólo tiene que ejecutar:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Puede ejecutar ese comando sin ningún tipo de archivos de entrada para ver la ayuda de línea de comandos para tsc.js.
Tengo un proyecto que recopila imprenta a Javascript en Java:
https://github.com/martypitt/typescript4j
Como se discutió en otras respuestas, esto hace uso de Rhino, por lo que no tiene dependencias en npmo node.
He aquí un ejemplo:
// 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'));
Yo lo uso en otro proyecto - 'Bakehouse' para llevar a cabo la compilación sobre la marcha de los recursos mecanografiado dentro de los entornos de la primavera
Si se trata de Java que es necesario apuntar a continuación, usted podría funcionar con el motor tsc.js Rhino como parte de su proceso de construcción.
Para compilar TS -> JS: nodo está disponible para todas las plataformas comunes, por lo que no veo por qué te gustaría tener un tsc.java cuando ya tiene un tsc.js. La instalación de nodo no es gran cosa. De hecho, es más fácil que Java.
Una vez que tenga su archivo proj.js, a continuación, puede copiarlo en el que la plataforma nunca despliegue que desea utilizar.
Desde mi punto de vista, JavaScript - o más exactamente ECMAScript es una alternativa a Java. Así que estoy feliz de que yo no tengo que bregar JVM etc para utilizar la herramienta. Pero si usted prefiere Java, entonces ¿por qué molestarse con el JS?
He estado jugando con esto, y puedo compilar mecanografiado con javascript con el siguiente código:
<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>
No es exactamente ideales sin embargo. Estoy tratando de conseguir algo corriendo por lo que puede convertir de transcripción de la JS dentro de C # (.NET utilizando Javascript), pero yo estoy poniendo un desbordamiento de pila en la llamada ts.addUnit.
Esto es lo que funcionó para mí:
En primer lugar, se instala el typescript módulo de nodo >> npm install -g typescript. Esto proporciona una utilidad de línea de comandos tsc.
Siguiente, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- Esto hará
transpileelgulpfile.tsygulp-config.tsarchivos agulpfile.jsegulp-config.js. Suministramos eltypings/tsd.d.tsarchivo como referencia para transpilation correcta. - El
typescriptmódulo de nodo cubre muchas opciones >>tsc -hpara especificar el directorio de salida o archivo, etc. .
Espero que esto ayude.
SublimeText2 truco Puede transpile de transcripción de JavaScript directamente desde SublimeText2 (que necesita nodo):
Crear un Typescript.sublime-buildarchivo en /Sublime Text 2/Packages/Usercon este contenido:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
entonces, ahora, puede transpile su código con Ctrl + B o cmd + B