2016-03-18 18 views
8

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

मुझे इस बारे में अनिश्चितता है कि नीचे दी गई उदाहरण लाइब्रेरी के लिए .d.ts फ़ाइलों को कैसे उत्पन्न किया जाए। टाइपस्क्रिप्ट .d.ts फ़ाइलों का निर्माण करता है (declaration के साथ सत्य पर सेट) लेकिन यह प्रति मॉड्यूल एक फ़ाइल है जहां मुझे एक .d.ts फ़ाइल की आवश्यकता होती है जिसे उपभोक्ताओं द्वारा उपयोग किया जा सकता है।

https://github.com/raybooysen/typescript-webpack-example

तो मेरे सवाल है, वहाँ यह कैसे पूरा करने के लिए की एक विहित उदाहरण है? क्या कोई तरीका है कि टाइपस्क्रिप्ट उपभोक्ता इन .d.ts फ़ाइलों को सही तरीके से आयात कर सकते हैं? फिलहाल नेट पर बहुत कम दस्तावेज और उदाहरण प्रतीत होते हैं और किसी भी मदद की सराहना करेंगे।

+0

आप घुरघुराना या घूंट का उपयोग कर और 'tsc --declaration' आदेश या एक पोस्ट का निर्माण आदेश अगर आप कर रहे हैं का उपयोग कर में देखा है:

यहाँ कैसे एक Webpack प्लगइन के रूप में इसे सेट अप करने का एक उदाहरण है वीएस का उपयोग कर? – Igor

+0

हम ts-loader का उपयोग करते हैं जो tsconfig.json फ़ाइल का उपयोग कर ts कंपाइलर चलाता है जिसकी घोषणा सत्य पर सेट की गई है। हालांकि, यह प्रति मॉड्यूल एक dts फ़ाइल उत्पन्न करता है। यदि यह ठीक है, जो इसे नहीं लगता है, तो यह उपभोग करने वाली परियोजना द्वारा कैसे खाया जा सकता है जो टाइपस्क्रिप्ट आधारित है। –

+0

@RayBooysen आप अंत में इसे कैसे हल किया? आपके अंतिम समाधान को जानने में मददगार होगा। –

उत्तर

2

मैं अंत में टाइपप्रति Github पृष्ठ पर एक मुद्दा खोला और वे पुष्टि की है यह संभव नहीं है: इस उद्देश्य के लिए एक आकर्षण की तरह

https://github.com/Microsoft/TypeScript/issues/8372#issuecomment-217219512

+0

टाइपस्क्रिप्ट के साथ बॉक्स में से यह संभव नहीं है, हालांकि डीटीएस-बंडल नौकरी करता है – vitkon

1

तो मेरा सवाल यह है कि, इसे पूरा करने के तरीके का एक कैननिकल उदाहरण है? वहाँ एक रास्ता टाइपप्रति उपभोक्ताओं इन .d.ts आयात कर सकते हैं सही ढंग से फ़ाइलें कि

आप आम तौर पर एक मॉड्यूल उपभोक्ता के रूप में बंडल उपयोग करने के लिए नहीं करना चाहती है। यह उस व्यक्ति का काम है जो लाइब्रेरी का उपयोग अंतिम वेबसाइट आर्टिफैक्ट के रूप में करता है। इसका मतलब है कि आपके पास नोड मॉड्यूल तैनात कलाकृतियों में एक दूसरे के बगल में केवल foo.ts/foo.js है। इन्हें टाइपस्क्रिप्ट कंपाइलर के साथ उपभोग किया जा सकता है।

अधिक

https://basarat.gitbooks.io/typescript/content/docs/quick/nodejs.html

+0

यह सुनिश्चित करें कि "आप आम तौर पर मॉड्यूल उपभोक्ता के रूप में बंडल का उपयोग नहीं करना चाहते हैं" यदि नहीं, तो मैं क्या उपयोग करूं? मैं उपभोक्ता के रूप में मॉड्यूल से कच्चे स्रोत का उपयोग करने के लिए औचित्य नहीं दे सकता क्योंकि लाइब्रेरी में ऐसी निर्भरताएं हो सकती हैं जिन्हें मैं संभालना नहीं चाहता हूं। उदाहरण के लिए, एक लाइब्रेरी कम/SASS फ़ाइलों का उपयोग कर सकती है, जिसे मैं संकलित नहीं करना चाहता हूं। –

+0

ये सभी * सीएसएस * स्टाइल फाइलें अंतिम उपभोक्ता परियोजना का हिस्सा बननी चाहिए और उन्हें यह चुनना होगा कि वे इसे कैसे बंडल करते हैं (एकल फ़ाइल या विभाजित आदि) – basarat

+0

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