Αναρωτιέμαι πώς είναι δυνατόν να μετατραπεί η γραφομηχανή σε JavaScript στο σταυρό τρόπο πλατφόρμα. Είμαι ενήμερος σχετικά με τη διαθεσιμότητα του διαχειριστή πακέτων κόμβος για γραφομηχανή , αλλά υπάρχουν άλλες εναλλακτικές λύσεις που μπορούν να χρησιμοποιηθούν στην πλευρά του server εκεί;
Ο μετασχηματισμός γραφομηχανή σε το JavaScript
Ο compiler γραφομηχανή είναι χτισμένο σε γραφομηχανή, και ως εκ τούτου είναι διαθέσιμη ως αρχείο JS ( tsc.js) που μπορεί να τρέξει με τη χρήση μόνο για κάθε ES3-compiliant εφαρμογή VM ή JS.
Τούτου λεχθέντος, το τρέχον αρχείο I / O υποδομής του compiler υποστηρίζει μόνο κόμβου και Windows Scripting API του αρχείου υποδοχής. Αν θέλετε να προτείνετε για την υποστήριξη άλλο περιβάλλον, μη διστάσετε να επικοινωνήσετε με την ομάδα μας GitHub ιστοσελίδα (πρώην CodePlex )
Ίσως δεν είναι η απάντηση που θέλετε, αλλά όπως όλοι αναφέρουν, ο compiler είναι ένα αρχείο JS, έτσι, οι επιλογές σας είναι οι επιλογές της εκτέλεσης ενός αρχείου JS.
Στα Windows, υπάρχουν 2 προφανείς, Κόμβος, και Windows Script Host.
Ξέρετε για κόμβου ήδη, η άλλη επιλογή είναι ένα στοιχείο που έρχεται με όλες τις εκδόσεις των Windows (νομίζω), μπορείτε να το κάνετε ως εξής:
cscript path/to/tsc.js source-file.ts
Μπορείτε να δείτε όλες τις επιλογές μεταγλώττισης από μόνο:
cscript path/to/tsc.js
Στο Linux Υποθέτω ότι θα πρέπει να είναι σε θέση να χρησιμοποιήσει (εκτός από τον κόμβο):
- V8 αυτόνομο κέλυφος, αντικαταστήστε
nodeήcscriptμεv8-shell - ExecJS https://github.com/sstephenson/execjs
Οποιαδήποτε άλλη JS δρομέας είναι διαθέσιμες στον επιλεγμένο πλατφόρμα (άλλη απάντηση αναφέρεται Rhino για παράδειγμα)
Ενημέρωση: Μια άλλη απάντηση υποδηλώνει το μεταγλωττιστή API είναι συμβατή μόνο με κόμβο και υποδοχής των Windows Script (cscript εργαλείο), έτσι ώστε, εφόσον είναι σωστή, τότε σε Linux θα πρέπει Κόμβος για την κατάρτιση γραφομηχανή.
Αν ψάχνετε για κάτι τέτοιο apt get tsc(ή ό, τι οι διαχειριστές πακέτων Linux / Mac είναι παρόμοια), νομίζω ότι δεν είναι εκεί.
Θυμάμαι ότι διάβασα κάπου ότι το I / O έχει βελτιστοποιηθεί για κόμβου και υποδοχής των Windows Script, έτσι, αν έχετε προβλήματα με τις επιλογές, θα πρέπει πιθανώς να καταλήξετε με Κόμβος αν επιδιώκουν την ανεξαρτησία πλατφόρμας.
Ενημέρωση: Μια άλλη απάντηση εδώ επιβεβαιώνει η ίδια σχετικά με τη συμβατότητα.
Συγκεκριμένα, στο διακομιστή (υποθέτοντας ότι ο διακομιστής σας έχει Node.js διαθέσιμο), τότε θα πρέπει απλά να εκτελέσετε:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Μπορείτε να εκτελέσετε αυτήν την εντολή χωρίς ονόματα αρχείων εισόδου για να δείτε τη βοήθεια της γραμμής εντολών για tsc.js.
Έχω ένα σχέδιο που συγκεντρώνει γραφομηχανή για να Javascript σε Java:
https://github.com/martypitt/typescript4j
Όπως αναφέρθηκε και σε άλλες απαντήσεις, γεγονός που καθιστά τη χρήση του Rhino, οπότε δεν έχει εξαρτήσεις από npmή node.
Εδώ είναι ένα παράδειγμα:
// 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'));
Το χρησιμοποιώ σε ένα άλλο έργο - «Bakehouse» για να εκτελέσει on-the-fly σύνταξη γραφομηχανή πόρων μέσα στην Άνοιξη του περιβάλλοντος
Αν είναι Java που θα πρέπει να στοχεύουν στη συνέχεια, θα μπορούσε να τρέξει tsc.js με τη μηχανή Rhino, στο πλαίσιο της διαδικασίας κατασκευής σας.
Για την κατάρτιση ts -> JS: κόμβος είναι διαθέσιμη για όλες τις κοινές πλατφόρμες, οπότε δεν μπορώ να καταλάβω γιατί θα θέλατε να έχουν μια tsc.java όταν έχετε ήδη tsc.js. Εγκατάσταση του κόμβου δεν είναι μεγάλη υπόθεση. Στην πραγματικότητα, είναι πιο εύκολο από ό, τι Java.
Μόλις έχετε το αρχείο proj.js σας, μπορείτε στη συνέχεια να το αντιγράψετε στην οποία ποτέ πλατφόρμα ανάπτυξης που επιθυμείτε να χρησιμοποιήσετε.
Από τη δική μου άποψη, JavaScript - ή ακριβέστερα ECMAScript είναι μια εναλλακτική λύση για Java. Γι 'αυτό και είμαι χαρούμενος που δεν έχω να λογομαχούν JVM κλπ χρήσης του εργαλείου. Αλλά αν προτιμάτε Java, τότε γιατί να καν στον κόπο με JS;
Παίζω γύρω με αυτό, και να καταρτίσει γραφομηχανή με javascript με τον ακόλουθο κώδικα:
<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>
Δεν είναι ακριβώς ιδανική όμως. Προσπαθώ να πάρω κάτι τρέχει για να μπορώ να μετατρέψετε γραφομηχανή για να JS μέσα σε C # (χρήση Javascript .NET), αλλά παίρνω μια υπερχείλιση στοίβας στην κλήση ts.addUnit.
Αυτό είναι ό, τι λειτούργησε για μένα:
Πρώτον, την εγκατάσταση της typescript μονάδας κόμβο >> npm install -g typescript. Αυτό δίνει ένα βοηθητικό πρόγραμμα γραμμής εντολών tsc.
Επόμενο, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- Αυτό θα είναι
transpileτοgulpfile.tsκαιgulp-config.tsαρχεία σεgulpfile.jsκαιgulp-config.js. Προμηθεύουμε τοtypings/tsd.d.tsαρχείο ως σημείο αναφοράς για τη σωστή transpilation. - Η
typescriptμονάδα node καλύπτει πολλές επιλογές >>tsc -hγια να καθορίσετε κατάλογο εξόδου ή αρχείο, κλπ .
Η ελπίδα αυτό βοηθά.
SublimeText2 τέχνασμα Μπορείτε να transpile γραφομηχανή για να javascript απευθείας από SublimeText2 (θα πρέπει να έχετε κόμβο):
Δημιουργήστε ένα Typescript.sublime-buildαρχείο με /Sublime Text 2/Packages/Userτο συγκεκριμένο περιεχόμενο:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
Στη συνέχεια, τώρα, μπορείτε να transpile κωδικό σας με ctrl + B ή cmd + B













