2014-11-08 11 views
18

टाइपस्क्रिप्ट doesn't seem to support absolute path references के बाद से, मैं नहीं देख सकता कि मेरे संदर्भों को साफ कैसे रखें। मुझे अपने फ़ोल्डर संरचना में कई अलग-अलग स्थानों पर टीएस फाइलें मिली हैं, और मुझे वास्तव में सावधान रहना है कि मेरा मतलब है कि ..\Scripts\typings\jquery\jquery.d.ts या ..\..\Scripts\typings\jquery\jquery.d.ts वास्तव में क्लाउगी लगता है।मैं पूर्ण पथ के बिना टाइपस्क्रिप्ट फ़ाइलों का संदर्भ कैसे दे सकता हूं?

क्या कोई रूट संदर्भ फ़ोल्डर निर्दिष्ट करने के लिए तरीका है, इसलिए मुझे वर्तमान फ़ाइल पथ से संबंधित सभी पथ निर्दिष्ट करने की आवश्यकता नहीं है, जो प्रत्येक फ़ोल्डर के लिए अलग है?

+0

'<संदर्भ पथ = "सी: /users/josh/node-samples/typings/jquery/jquery.d.ts जैसे पथ" />' काम करना चाहिए। आपके द्वारा लिंक किया गया मुद्दा निश्चित रूप से दिखाया गया है (और मैंने पुष्टि की है कि यह काम करता है)। – WiredPrairie

+1

हम्म, यह मैला संदर्भों से बेहतर है, लेकिन निर्देशिका संरचना हार्डकोडिंग का अर्थ है कि मेरी फाइल सिस्टम में स्थान फ़ाइलों में एम्बेडेड है, जो अन्य मशीनों पर टूट जाएगा। निश्चित रूप से टाइपस्क्रिप्ट को रूट-रिश्तेदार पथों का समर्थन करना चाहिए, यानी '/ स्क्रिप्ट/टाइपिंग/...' –

+0

दुर्भाग्य से, यह ऐसी चीज का समर्थन नहीं करता है क्योंकि प्रत्येक फ़ाइल को एक जावास्क्रिप्ट फ़ाइल में स्वतंत्र रूप से संकलित किया जा सकता है, इसलिए कोई कुआं नहीं है रूट पथ के लिए परिभाषित स्थान। टीम जीथ्यूब पर फीडबैक सुनने के बारे में बहुत अच्छी है। – WiredPrairie

उत्तर

17

वर्तमान में संदर्भों में उपयोग करने के लिए रूट फ़ोल्डर निर्दिष्ट करने का कोई तरीका नहीं है।

पूर्ण फ़ाइल पथ काम करते हैं, लेकिन आम तौर पर कई डेवलपर्स के साथ बोलने वाले पथों का रखरखाव यह संभवतः कई टाइपस्क्रिप्ट विकास परियोजनाओं के लिए गैर-स्टार्टर बनाता है।

कोडप्लेक्स पर discussions रहा है उदाहरण के लिए, एक समान अनुरोध व्यक्त किया (लेकिन एक संकल्प के बिना)। जैसा कि टाइपस्क्रिप्ट फाइलें अकेले हैं, कुछ संकलक को "परियोजना" जैसी योजना शुरू करने के बारे में चिंतित हैं।

कुछ डेवलपर एक फ़ाइल में सबसे अधिक आवश्यक संदर्भ डालेंगे (उदाहरण के लिए, _references.d.ts) और परिभाषा फाइलों के संदर्भों को सूचीबद्ध करें। फिर, उस फ़ाइल को अन्य टाइपस्क्रिप्ट फ़ाइलों से संदर्भित किया जाएगा। यह सरल है, लेकिन पूरी तरह से समस्या को खत्म नहीं करता है (जैसा कि आप अभी भी संभावित पॉपिंग निर्देशिका के एन के स्तर के साथ रिश्तेदार फ़ाइल संदर्भ का उपयोग करने की आवश्यकता होगी):

/// <references path="../../../_references.d.ts." /> 

आप कैसे कई फाइलों पर निर्भर करते हुए और परिभाषाओं के आकार हालांकि, आप पाएंगे कि फ़ाइलों को व्यक्तिगत रूप से संकलित किया गया है कि संकलन प्रक्रिया में अधिक समय लगेगा (क्योंकि यह _references.d.ts फ़ाइल से संभावित रूप से अप्रयुक्त परिभाषाओं में खींचता है)। (यदि आपके पास उदाहरण के लिए है, तो "आईडी पर सक्रिय करें" आईडीई के भीतर सक्रिय)।

+0

मुझे यकीन नहीं है कि सामान्य रूप से टाइपस्क्रिप्ट को कैसे काम करना चाहिए, लेकिन ऐसा लगता है कि विजुअल स्टूडियो सामान्य पथ/पहचानने के लिए टूलिंग को ओवरले कर सकता है, शायद सामान्य ~/एएसपी.NET सम्मेलन का उपयोग कर। ऐसा करने का कोई कारण नहीं है? –

+0

टाइपस्क्रिप्ट कंपाइलर अलग-अलग जहाजों ... टीएससी कंपाइलर के सही समायोजन के साथ, हाँ, एक '~/defs/etcd.ts' काम पर किया जा सकता है। – WiredPrairie

+0

विजुअल स्टूडियो में, यदि आप कम से कम nuget के माध्यम से .d.ts फ़ाइलों को डाउनलोड करते हैं, तो आपको संदर्भों को शामिल करने की आवश्यकता नहीं है। यह बहुत अच्छा है, लेकिन यह आपको केवल एक आईडीई का उपयोग करने में ताला लगा देता है। –

0

के लिए अपने रिश्तेदार पथ संदर्भ सुथरा रखने के लिए, में पथ उर्फ ​​(ते) निर्दिष्ट में अपने tsconfig.json

सबसे पहले ts रास्तों को हल करने नोट के लिए tspath एक NPM उपकरण स्थापित: tspath एक की आवश्यकता है नोड के हाल ही में छेड़छाड़!

npm install -g tspath 

इसके बाद,

"baseUrl": "./", 
    "paths": { 
    "@Scripts/*": ["./Scripts/typings/jquery/*"], 
    "@Plugins/*": ["./MyPlugins/V2/*"] 
    } 

tsconfig.json करने के लिए जब अपनी स्क्रिप्ट

@Scripts/jquery 
@Plugins/myPlugin 

संदर्भित अब आप अपने अन्य नाम का उपयोग पथ उपनाम जोड़ लेंगे तो आप अपनी परियोजना निर्देशिका से टाइपप्रति संकलक चलने के बाद, , रन:

tspath 

या

tspath -f 

प्रॉम्प्ट को छोड़ने के लिए!

में और अधिक पढ़ें: https://www.npmjs.com/package/tspath

आशा यह आपके लिए क्या पूछा है!

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

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