2015-09-10 11 views
10

मैं तृतीय पक्षों द्वारा उपयोग के लिए एक ढांचे को बंडल करने के लिए वेबपैक का उपयोग कर रहा हूं। इस ढांचे को कई ES6 वर्गों का पर्दाफाश करना चाहिए। एक मॉड्यूलर फैशन में बिल्डिंग, मैंने प्रति फ़ाइल एक वर्ग लिखा है। मैं जो करना चाहता हूं वह इन सभी फ़ाइलों को एक साथ बना रहा है, और उन्हें दिए गए "नेमस्पेस" के तहत बंडल किया गया है। उदाहरण:एकाधिक प्रविष्टि फ़ाइलों से वेबपैक निर्यात वर्ग

apples.js export class Apples {...}
oranges.js export class Oranges {...}

webpack.config.js:

module.exports = { 
    entry: ['./src/apples.js', './src/oranges.js'], 
    output: { 
    path: './dist', 
    filename: 'fruit.js', 
    library: 'Fruit', 
    libraryTarget: 'umd' 
    } 
} 

हालांकि, अगर मैं ब्राउज़र में इस लाइब्रेरी को लोड और कंसोल में fruit टाइप , मैं केवल फल के तहत संतरे वस्तु को देखता हूं। लाइब्रेरी में केवल अंतिम प्रविष्टि फ़ाइल का खुलासा किया जा रहा है। निश्चित रूप से पर्याप्त, वेबपैक दस्तावेज़ इस व्यवहार की पुष्टि करते हैं:

यदि आप कोई सरणी पास करते हैं: सभी मॉड्यूल स्टार्टअप पर लोड होते हैं। अंतिम निर्यात किया जाता है। http://webpack.github.io/docs/configuration.html#entry

मेरे वर्तमान समाधान का एक फ़ाइल से मेरे सभी वर्गों निर्यात करने के लिए है, लेकिन यह बहुत बोझल हो रही है।

मैं एकाधिक प्रविष्टि फ़ाइलों के साथ लाइब्रेरी स्थापित करने के बारे में कैसे जा सकता हूं जो सभी निर्यात किए जाते हैं? या मैं यहाँ कुछ गलत तरीके से जा रहा हूँ?

+2

क्या आप कह रहे हैं कि आप कुछ इंडेक्स फ़ाइल नहीं चाहते हैं जहां आप मैन्युअल रूप से निर्यात किए गए हैं को परिभाषित करते हैं? मैं पूरी तरह से पालन नहीं कर रहा हूँ। – loganfsmyth

+0

@loganfsmyth यह आंशिक रूप से क्यों है कि मैं सोच रहा हूं कि क्या मैं इस बारे में गलत तरीके से जा रहा हूं। मैंने केवल एक इंडेक्स फ़ाइल जोड़ने का प्रयास किया जहां मैं सेब और संतरे आयात करता हूं और फिर 'निर्यात {सेब, संतरे}' निर्यात करता हूं। यह एक व्यवहार्य समाधान प्रतीत होता है। –

+1

यही वह दृष्टिकोण है जिसकी मैं अपेक्षा करता हूं। दिन के अंत में, मॉड्यूल में कुछ सार्वजनिक एपीआई और कुछ निजी होते हैं, और इंडेक्स फ़ाइल वह है जो इसे केंद्रीय स्थान पर परिभाषित कर सकती है। – loganfsmyth

उत्तर

1

मुझे लगता है कि आप अपने serveral मॉड्यूल को व्यवस्थित करने का संकेत देने के लिए एक एंट्री.जेएस फ़ाइल का बेहतर उपयोग करेंगे।

import Apples from './apples'; 
import Oranges from './oranges'; 

export { 
    Apples, 
    Oranges 
}; 

वैसे, अगर आप अपने खुद के द्वारा इस तरह के बेवकूफ कोड लिखने के लिए नहीं करना चाहते, Gulp/ग्रंट का उपयोग फ़ाइल 'entry.autogenerated.js' कुछ तर्क द्वारा उत्पन्न करने के लिए तो प्रवेश के साथ webpack चलाने 'entry.autogenerated.js'।

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