Transformeren typoscript in JavaScript

stemmen
17

Ik vraag me af hoe het mogelijk is om de transformatie typoscript in JavaScript in een cross-platform manier. Ik ben op de hoogte over de beschikbaarheid van knooppunt package manager voor typoscript , maar zijn er ook andere alternatieven die kunnen worden gebruikt op de server?

De vraag is gesteld op 01/10/2012 om 19:16
bron van user
In andere talen...                            


9 antwoorden

stemmen
25

De Typescript compiler is gebouwd in typoscript, en dus is beschikbaar als een JS-bestand ( tsc.js) dat kan worden uitgevoerd met behulp van zowat elke ES3-compiliant VM of JS implementatie.

Dat gezegd hebbende, de samensteller huidige bestand I / O-infrastructuur ondersteunt alleen Node en Windows Scripting Host-bestand API's. Indien u graag adviseren om steun voor een andere omgeving, voel je vrij om uit te reiken naar het team van onze GitHub website (Voorheen CodePlex )

antwoordde op 01/10/2012 om 19:36
bron van user

stemmen
12

Misschien is het niet het antwoord dat je wilt, maar als iedereen gezegd, de compiler is een JS-bestand, dus uw opties zijn de opties van het uitvoeren van een JS-bestand.

In Windows, zijn er 2 voor de hand liggende, Node en Windows Script Host.

Je weet over knooppunt al, de andere optie is een component die wordt geleverd met alle versies van Windows (denk ik), kunt u dit doen als dit:

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

U kunt alle compiler opties door gewoon te zien:

cscript path/to/tsc.js

Op Linux Ik neem aan dat je moet kunnen (naast knooppunt) te gebruiken:

  • V8-alone shell, vervangen nodeof cscriptmetv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Alle andere JS runner beschikbaar op het geselecteerde platform (een ander antwoord genoemd Rhino bijvoorbeeld)

Update: Een ander antwoord suggereert dat de compiler API is alleen compatibel met knooppunt en Windows Script Host (cscript tool), dus als juist is, dan op Linux zul je Node moet typoscript compileren.

Als u op zoek bent naar iets als apt get tsc(of wat dan ook de Linux / Mac-pakket managers zijn dergelijke), ik denk dat er niet is.

Ik herinner me ergens gelezen dat de I / O is geoptimaliseerd voor Node en Windows Script Host, dus als u problemen met opties, zult u waarschijnlijk eindigen met Node als op zoek naar platformonafhankelijkheid.

Update: Een ander antwoord hier bevestigt hetzelfde over compatibiliteit.

antwoordde op 03/10/2012 om 04:23
bron van user

stemmen
5

Concreet, op de server (ervan uitgaande dat uw server Node.js beschikbaar is), zou je gewoon uit te voeren:

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

U kunt die opdracht uit te voeren zonder enige inbreng bestandsnamen aan de command-line help voor tsc.js. zien

antwoordde op 01/10/2012 om 23:39
bron van user

stemmen
3

Ik heb een project dat Typescript compileert om Javascript in Java:

https://github.com/martypitt/typescript4j

Zoals besproken in andere reacties, maakt gebruik van Rhino, dus geen afhankelijkheid npmof node.

Hier is een voorbeeld:

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

Ik gebruik het in een ander project - 'Bakehouse' on-the-fly compilatie van typoscript middelen binnen Spring omgevingen uit te voeren

antwoordde op 17/01/2013 om 08:35
bron van user

stemmen
3

Als het Java dat je dan nog hoeft te richten kun je tsc.js lopen met de Rhino motor als onderdeel van uw bouwproces.

antwoordde op 02/10/2012 om 12:34
bron van user

stemmen
2

Om ts compileren -> JS: knooppunt is beschikbaar voor alle gangbare platforms, dus ik zie niet in waarom je dat zou willen een tsc.java hebben wanneer u al een tsc.js. Het installeren van het knooppunt is geen big deal. In feite is het makkelijker dan Java.

Zodra u uw proj.js bestand, kunt u vervolgens kopiëren naar die ooit deployment platform u wilt gebruiken.

Vanuit mijn oogpunt, JavaScript - of beter gezegd ECMAScript is een alternatief voor Java. Dus ik ben blij dat ik niet hoeft te twisten JVM etc om het gereedschap te gebruiken. Maar als je dat liever Java, waarom dan eens de moeite met JS?

antwoordde op 02/10/2012 om 01:12
bron van user

stemmen
1

Ik speel rond met deze, en kan typoscript compileren met javascript met de volgende code:

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

Het is niet bepaald ideaal dat wel. Ik probeer iets te runnen, zodat ik kan typoscript binnen C # (met behulp van JavaScript .NET) om te zetten in JS te krijgen, maar ik krijg een stack overflow op de ts.addUnit gesprek.

antwoordde op 02/10/2012 om 18:48
bron van user

stemmen
0

Dit is wat werkte voor mij:

Ten eerste, de installatie van de typescript knooppunt module >> npm install -g typescript. Dit geeft een command line utility tsc.

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

  • dit zal transpilede gulpfile.tsen gulp-config.tsbestanden naar gulpfile.jsen gulp-config.js. Wij leveren het typings/tsd.d.tsbestand als referentie voor de juiste transpilation.
  • Het typescript knooppunt module omvat vele opties >> tsc -hom aan te geven output directory of het bestand, enz .

Ik hoop dat dit helpt.

antwoordde op 23/05/2016 om 04:47
bron van user

stemmen
0

SublimeText2 Trick U kunt typoscript transpile javascript direct van SublimeText2 (u knooppunt nodig):

Maak een Typescript.sublime-buildbestand /Sublime Text 2/Packages/Usermet deze inhoud:

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

toen, nu, kunt u uw code transpile met ctrl + B of cmd + B

antwoordde op 02/10/2012 om 07:46
bron van user

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