2016-10-30 8 views
5

मैंने उन सभी पुस्तकालयों की जांच की है जिनमें इसे शामिल किया गया है और उनमें सभी कार्यों को उनके पूर्ण पथ के माध्यम से शामिल किया गया है, यानी import find from 'lodash/find'मेरे वेबपैक में लॉन्च होने का पूरा कारण क्यों है?

रेडक्स मुख्य निर्भरता है जो इसका उपयोग करता है और मैंने उनके कोड को भी चेक किया है, और यह प्रत्येक कार्य को अपने पूर्ण पथ से सही ढंग से आयात करता है।

यहाँ मेरी webpack निर्माण के json उत्पादन कल्पना है:

https://www.dropbox.com/s/njjjtgtw19d52j6/Screenshot%202016-10-30%2006.27.44.png?dl=0

आप देख सकते हैं, lodash ऊपर एक बहुत बड़ा प्रतिशत, ले जा रहा है, जबकि केवल एक अपने तरीकों में से कुछ किया जाता है। webpack-bundle-size-analyzer का उपयोग करना 135kb (पूर्व minified और पाठ्यक्रम के gzipped) के लिए आता है, लेकिन यह अभी भी बहुत बड़ा होना चाहिए।

क्या किसी और ने इसका अनुभव किया है? मुझे लगता है कि यह किसी भी तरह से redux है।

अद्यतन: मुझे डॉट सिंटैक्स का उपयोग करके एक पैकेज आयात लॉन्च फ़ंक्शन मिला: import find from 'lodash.find'। शायद यह करता है। डॉट सिंटैक्स और पूर्ण पथ वाक्यविन्यास के बीच क्या अंतर है?

+0

हो सकता है सब निर्भरता संयुक्त में अपने पूर्ण पथ का उपयोग करके लॉष्श के सभी तरीकों को शामिल किया गया है। –

उत्तर

1

उपयोग babel-plugin-lodashimport { map } from 'lodash'; तरह lodash तरीकों में से सभी आयातों में परिवर्तित करने के लिए संदर्भ import _map from 'lodash/map'; निर्देशित करने के लिए:

{ 
    "plugins": ["lodash"], 
    "presets": ["es2015"] 
} 

lodash-webpack-plugin साथ यह कम्बाइन सिर्फ जिन सुविधाओं की आवश्यकता शामिल करने के लिए:

plugins: [ 
    new LodashModuleReplacementPlugin({ 'collections': true }) 
] 
संबंधित मुद्दे