2016-10-17 16 views
9

मैं एक पुराने सॉफ्टवेयर के साथ अटक गया हूं जो एएसपीएक्स पृष्ठों का उपयोग करता है। मेरे पास कुछ नियंत्रण (एसीएक्स) हैं जो लगभग एक छोटे सिंगल पेज अनुप्रयोगों के रूप में काम कर सकते हैं (उदाहरण के लिए एक नियंत्रण जो आपको न्यूजलेटर में पंजीकृत करने देता है, या एक नियंत्रण जो उपयोगकर्ता को समाचार फ़ीड को अनुकूलित करने देता है)। (मुझे पता है ... यह वास्तव में एक एसपीए नहीं है ...)मॉड्यूल लोडर के बिना टाइपस्क्रिप्ट?

मैंने इस छोटी सूक्ष्म परियोजनाओं के लिए VUE.js का उपयोग शुरू किया। मैं इसे सादे जावास्क्रिप्ट के साथ सभी काम करने में कामयाब रहा।

अब मैं जावास्क्रिप्ट के बजाय टाइपस्क्रिप्ट का उपयोग करना चाहता था।

मुद्दा रहा है: जब मैं अपने typescripts बना सकते हैं और वीयूई या अपने ही जैसे कुछ मॉड्यूल संदर्भ, यह हमेशा उत्पन्न JS फ़ाइल कुछ "की आवश्यकता होती है" आदेश (ES5 को transpiled) या किसी आयात में लिखते हैं ES6 के लिए पारदर्शी अगर आदेश।

जहां तक ​​मैंने पढ़ा है, इन आदेशों को सर्वर पर कुछ मॉड्यूल लोडर द्वारा उपयोग किया जाना चाहिए। लेकिन मेरे पास नोड.जेएस सर्वर नहीं है और न ही जावास्क्रिप्ट बिल्डिंग इंफ्रास्ट्रक्चर है। क्या उन आदेशों को अनदेखा करने के लिए टाइपस्क्रिप्ट को बताने का कोई तरीका है? इसके बाद मैं मैन्युअल रूप से जरूरी जेएस-जेनेरेटेड फाइलों को संदर्भित करता हूं जिसमें मॉड्यूल की आवश्यकता होती है y ascx-control।

+0

ब्राउज़र ?? – YOU

उत्तर

2

आप कर सकते हैं। मॉड्यूल लोडर स्टेटमेंट के बिना कोड को आउटपुट करने के लिए आपको बस टीएससी कॉन्फ़िगर करना होगा।

उदाहरण के लिए, सभी कोड एक बड़ी फ़ाइल में।

{ 
"compilerOptions": { 
    "target": "es5", 
    "outFile": "www/js/bundle.js", 
    "sourceMap": true, 
    "declaration": true, 
    "removeComments": true, 
    "sourceRoot": "" 
} 

}

कि ES6 आयात बयान के अपने उपयोग को सीमित कर सकते हैं। आपको इसके बजाय नेमस्पेस परिभाषित टाइपस्क्रिप्ट का उपयोग करना पड़ सकता है।

+0

धन्यवाद। मैं कोशिश करूँगा – CodeHacker

+0

यह काम नहीं करता है, क्योंकि 'आउट' (इसके बजाय बहिष्कृत उपयोग' आउटफाइल 'किसी भी स्क्रिप्ट ऑर्डर का सम्मान नहीं करता है, और आपको जेएस में बहुत सारी त्रुटियां हो सकती हैं –

5

अपने tsconfig.jsonmodule संपत्ति में none

{ 
    "compilerOptions": { 
     "module": "none", 
    } 
} 

अब वहाँ कोई और अधिक amd या system कोड हैं होना चाहिए। और अब आप import और export कथन का उपयोग नहीं कर सकते हैं।

और इसके बिना, टाइपस्क्रिप्ट आपकी स्क्रिप्ट के क्रम को नहीं जानता है, और आपके पास जेएस अपरिभाषित त्रुटियां हो सकती हैं।

इसे ठीक करने के लिए, बस जोड़ने के एक tripple slash directiveimport के बजाय बयान

अब टाइपप्रति सही क्रम में सभी स्क्रिप्ट संकलन।
out के बजाय outFile का भी उपयोग करें क्योंकि इसे बहिष्कृत किया गया है।

संबंधित मुद्दे