Je me demande comment est - il possible de transformer le tapuscrit en JavaScript de manière multi - plateforme. Je suis au courant de la disponibilité du gestionnaire de paquets de noeud pour tapuscrit , mais sont - il d'autres alternatives qui peuvent être utilisés sur le côté serveur?
Transformer tapuscrit en JavaScript
Le compilateur dactylographiée est construit en tapuscrit, et est donc disponible sous forme de fichier JS ( tsc.js) qui peut être exécuté en utilisant à peu près tout ES3-VM ou compiliant mise en œuvre JS.
Cela dit, l' infrastructure d' E / S de fichier actuel du compilateur ne supporte que les API de fichiers hôte et nœud de script Windows. Si vous souhaitez recommander un soutien à un autre environnement, ne hésitez pas à tendre la main à l'équipe de notre site de GitHub (Anciennement CodePlex )
Peut-être que ce n'est pas la réponse que vous voulez, mais comme tout le monde dit, le compilateur est un fichier JS, donc, vos options sont les options d'exécution d'un fichier JS.
Sous Windows, il y a 2 plus évidentes, Noeud et Windows Script Host.
Vous connaissez déjà le noeud, l'autre option est un composant qui est livré avec toutes les versions de Windows (je pense), vous pouvez le faire comme ceci:
cscript path/to/tsc.js source-file.ts
Vous pouvez voir toutes les options du compilateur par simplement:
cscript path/to/tsc.js
Sur Linux, je suppose que vous devriez être en mesure d'utiliser (en plus de nœud):
- Shell autonome V8, remplacer
nodeoucscriptavecv8-shell - ExecJS https://github.com/sstephenson/execjs
Tout autre coureur JS disponible sur la plate-forme sélectionnée (une autre réponse mentionnée Rhino par exemple)
Mise à jour: Une autre réponse suggère l'API du compilateur est uniquement compatible avec nœud et Windows Script Host (outil cscript), donc, si elle est correcte, puis sur Linux , vous aurez besoin de nœud pour compiler tapuscrit.
Si vous cherchez quelque chose comme apt get tsc(ou quels que soient les gestionnaires de paquets Linux / Mac sont comme), je pense qu'il n'y a pas.
Je me souviens avoir lu quelque part que l'E / S est optimisé pour le nœud et Windows Script Host, donc, si vous avez des problèmes avec des options, vous finirez probablement avec nœud si la plate-forme indépendantiste.
Mise à jour: Une autre réponse confirme ici même sur la compatibilité.
Concrètement, sur le serveur (en supposant que votre serveur a Node.js disponible), vous souhaitez simplement courir:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Vous pouvez exécuter cette commande sans noms de fichiers d'entrée pour afficher l'aide en ligne de commande pour tsc.js.
J'ai un projet qui compile dactylographiée au Javascript en Java:
https://github.com/martypitt/typescript4j
Comme nous l' avons dans d' autres réponses, ce qui rend l' utilisation de Rhino, donc n'a pas de dépendances sur npmou node.
Voici un exemple:
// 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'));
Je l' utilise dans un autre projet - « Bakehouse » pour effectuer la compilation sur la volée des ressources dactylographiées dans des environnements de printemps
Si c'est Java que vous devez cibler vous pouvez alors exécuter tsc.js avec le moteur Rhino dans le cadre de votre processus de construction.
Pour compiler ts -> js: noeud est disponible pour toutes les plates-formes communes, donc je ne vois pas pourquoi vous voudriez avoir un tsc.java lorsque vous avez déjà un tsc.js. Installation nœud est pas grand. En fait, il est plus facile que Java.
Une fois que vous avez votre fichier proj.js, vous pouvez le copier sur la plate-forme de déploiement qui jamais que vous souhaitez utiliser.
De mon point de vue, JavaScript - ou plus exactement ECMAScript est une alternative à Java. Je suis donc heureux que je n'ai pas JVM etc quereller pour utiliser l'outil. Mais si vous préférez Java, alors pourquoi même pas la peine avec JS?
Je joue autour avec cela, et peut compiler avec tapuscrit javascript avec le code suivant:
<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>
Ce n'est pas exactement idéal cependant. Je suis en train de faire quelque chose en cours d'exécution, je peux convertir tapuscrit à JS au sein de C # (en utilisant Javascript .NET), mais je reçois un débordement de pile sur l'appel ts.addUnit.
C'est ce qui a fonctionné pour moi:
Tout d' abord, installé le typescript module de noeud >> npm install -g typescript. Cela donne une ligne de commande utilitaire tsc.
Prochain, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- ce sera
transpilelagulpfile.tset desgulp-config.tsfichiersgulpfile.jsetgulp-config.js. Nous fournissons letypings/tsd.d.tsfichier en tant que référence pour transpilation correct. - Le
typescriptmodule de nœud couvre de nombreuses options >>tsc -hpour spécifier le répertoire de sortie ou d'un fichier, etc. .
J'espère que cela t'aides.
SublimeText2 Trick Vous pouvez transpile tapuscrit à javascript directement à partir SublimeText2 (vous avez besoin noeud):
Créez un Typescript.sublime-buildfichier /Sublime Text 2/Packages/Useravec ce contenu:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
puis, maintenant, vous pouvez transpile votre code avec ctrl + B ou cmd + B













