मैं सोच रहा हूँ कि यह कैसे संभव बदलने के लिए है टाइपप्रति एक क्रॉस मंच ढंग से जावास्क्रिप्ट में। मैं की उपलब्धता के बारे में जागरूक कर रहा हूँ टाइपप्रति के लिए नोड पैकेज प्रबंधक , लेकिन क्या कोई अन्य विकल्प जो सर्वर साइड पर इस्तेमाल किया जा सकता है?
जावास्क्रिप्ट में टाइपप्रति बदलने
टाइपप्रति संकलक टाइपप्रति में बनाया गया है, और इसलिए एक जे एस फ़ाइल (रूप में उपलब्ध है tsc.js) कि बस किसी भी ES3-compiliant वीएम या जे एस कार्यान्वयन के बारे में का उपयोग कर चलाया जा सकता है।
जिसके अनुसार, संकलक की मौजूदा फ़ाइल आई / ओ बुनियादी ढांचे केवल नोड और Windows स्क्रिप्टिंग होस्ट फ़ाइल एपीआई का समर्थन करता है। यदि आप किसी अन्य पर्यावरण के लिए समर्थन के लिए सिफारिश करने के लिए चाहते हैं, तो हमारे पर टीम से संपर्क करने में संकोच न GitHub साइट (पूर्व में CodePlex )
शायद यह जवाब आप चाहते हैं नहीं है, लेकिन हर कोई के रूप में उल्लेख किया है, संकलक एक जे एस फ़ाइल है, इसलिए, अपने विकल्पों को एक जे एस फ़ाइल को क्रियान्वित करने के विकल्प हैं।
विंडोज में, वहाँ 2 स्पष्ट हैं, नोड, और Windows स्क्रिप्ट होस्ट कर रहे हैं।
आप नोड के बारे में पहले से ही पता है, अन्य विकल्प के लिए एक घटक है कि विंडोज (मुझे लगता है कि), तो आप इस तरह यह कर सकते हैं के सभी संस्करणों के साथ आता है:
cscript path/to/tsc.js source-file.ts
तुम बस द्वारा सभी संकलक विकल्प देख सकते हैं:
cscript path/to/tsc.js
लिनक्स पर मुझे लगता है कि आप (नोड के अलावा) का उपयोग करने के लिए सक्षम होना चाहिए:
- वी 8 स्टैंडअलोन खोल, की जगह
nodeयाcscriptसाथv8-shell - ExecJS https://github.com/sstephenson/execjs
किसी भी अन्य जे एस धावक चयनित मंच पर उपलब्ध (एक और उत्तर उदाहरण के लिए राइनो उल्लेख किया)
अद्यतन: एक और जवाब है, पता चलता है संकलक एपीआई नोड और Windows स्क्रिप्ट होस्ट (cscript उपकरण) के साथ ही संगत है, इसलिए सही है, तो लिनक्स पर आप टाइपप्रति संकलित करने के लिए नोड की आवश्यकता होगी।
आप देख रहे हैं की तरह कुछ के लिए apt get tsc(या जो भी लिनक्स / मैक पैकेज प्रबंधकों की तरह हैं), मुझे लगता है कि वहाँ नहीं है।
मैंने कहीं पढ़ने याद है कि मैं / हे नोड और Windows स्क्रिप्ट होस्ट के लिए अनुकूलित है, इसलिए, अगर आप विकल्पों के साथ समस्या है, तो आप शायद नोड के साथ खत्म करता है, तो मंच स्वतंत्रता की मांग करेंगे।
अद्यतन: एक और जवाब यहाँ संगतता के बारे में एक ही पुष्टि करता है।
वस्तुतः, सर्वर पर (अपने सर्वर संभालने उपलब्ध Node.js है), तो आप बस चलाने चाहते हैं:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
आप tsc.js. के लिए आदेश-पंक्ति सहायता देखने के लिए किसी भी इनपुट फ़ाइल नाम के बिना है कि आदेश चला सकते हैं
मैं एक परियोजना है जो जावा में जावास्क्रिप्ट को टाइपप्रति संकलित है:
https://github.com/martypitt/typescript4j
के रूप में अन्य उत्तर में चर्चा की, इस राइनो का उपयोग करता है, इतने पर कोई निर्भरता है 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' स्प्रिंग वातावरण के भीतर टाइपप्रति संसाधनों की ऑन-द-मक्खी संकलन प्रदर्शन करने के लिए
यदि यह जावा है कि आप तो लक्षित करने की आवश्यकता है कि आप अपने निर्माण की प्रक्रिया के हिस्से के रूप में राइनो इंजन के साथ tsc.js चला सकते हैं।
ts संकलित करने के लिए -> js: नोड सभी आम प्लेटफार्मों के लिए उपलब्ध है, तो मैं यह देखने के लिए कि आप एक tsc.java के लिए आप पहले से ही एक tsc.js. है जब चाहते हैं असफल स्थापित कर रहा है नोड कोई बड़ी समस्या नहीं है। वास्तव में, यह जावा की तुलना में आसान है।
एक बार जब आप अपने proj.js फ़ाइल है, तो आप तो यह जो करने के लिए कभी तैनाती मंच आप चाहें उपयोग करने के लिए कॉपी कर सकते हैं।
देखने की मेरी बात से, जावास्क्रिप्ट - या अधिक सही ECMAScript जावा के लिए एक विकल्प है। इसलिए मैं खुश हूँ कि मैं JVM लड़ाई के लिए आदि उपकरण का उपयोग करने की जरूरत नहीं है हूँ। लेकिन अगर आप जावा पसंद करते हैं, तो क्यों भी जे एस से परेशान?
मैं चारों ओर इस के साथ खेल रहा है, और निम्न कोड के साथ जावास्क्रिप्ट के साथ टाइपप्रति संकलन कर सकते हैं:
<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>
हालांकि यह वास्तव में आदर्श नहीं है। मैं कुछ चल रहा है तो मैं सी # (जावास्क्रिप्ट नेट का प्रयोग करके) के भीतर जे एस के लिए टाइपप्रति परिवर्तित कर सकते हैं पाने के लिए कोशिश कर रहा हूँ, लेकिन मैं ts.addUnit फोन पर एक ढेर अतिप्रवाह हो रही है।
इसी से मेरा काम बना है:
सबसे पहले, स्थापित typescript नोड मॉड्यूल >> npm install -g typescript। यह एक कमांड लाइन उपयोगिता देता है tsc।
आगामी, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- इस होगा और करने के लिए फ़ाइलों और । हम आपूर्ति सही transpilation के लिए संदर्भ के रूप में फ़ाइल।
transpilegulpfile.tsgulp-config.tsgulpfile.jsgulp-config.jstypings/tsd.d.ts typescriptनोड मॉड्यूल कई विकल्प को शामिल किया गया >>tsc -hनिर्दिष्ट करने के लिए उत्पादन निर्देशिका या फ़ाइल, आदि ।
उम्मीद है की यह मदद करेगा।
SublimeText2 ट्रिक आप SublimeText2 (आप नोड की जरूरत है) से सीधे जावास्क्रिप्ट को टाइपप्रति transpile कर सकते हैं:
एक बनाएं Typescript.sublime-buildमें फ़ाइल /Sublime Text 2/Packages/Userइस सामग्री के साथ:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
तो, अब, आप अपने कोड Ctrl + B या cmd + B साथ transpile कर सकते हैं













