2015-05-19 7 views
33

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

मेरे पास 2 बंडल फ़ाइल आउटपुट के अनुरूप 2 प्रविष्टि बिंदु हैं: vendors.js और app.js

वेबपैक-देव-सर्वर चलाते समय या किसी भी अनुकूलन झंडे के बिना संकलन करते समय, सब कुछ ठीक काम करता है। हालांकि, जैसे ही मैं Uglify प्लगइन का उपयोग करने का प्रयास करता हूं, संकलित आउटपुट में त्रुटियां होती हैं।

मैं कोशिश की है:

webpack -p
webpack -optimize-minimize

या config में:

new webpack.optimize.UglifyJsPlugin({sourceMap:false})

लेकिन इसके साथ ही रनटाइम त्रुटि (अपरिभाषित चर) में सभी परिणाम।

क्या कोई स्पष्ट है जो इसका कारण बन सकता है? क्या उग्रता अति उत्साही है और कुछ ऐसा नहीं कर रहा है जो इसे नहीं करना चाहिए?

+0

अरे, क्या आप मुझे 'वेबपैक-पी' और 'UglifyJsPlugin 'प्लगइन का उपयोग करके अंतर समझा सकते हैं? – Matthew

उत्तर

67

समस्या Uglify मैंगलर के कारण हुई थी।

new webpack.optimize.UglifyJsPlugin({ 
    sourceMap: false, 
    mangle: false 
}) 

यह आपके कॉन्फ़िग फ़ाइल के लिए एक Webpack Plugin के रूप में शामिल किया जाना चाहिए, जैसे:: जानते हुए भी जो चर नाम बदलने समस्या पैदा कर रहा था बिना, समाधान पूरी तरह से mangling बंद करने के लिए था

var config = { 

    //... various config settings 

    plugins: [ 
    new webpack.optimize.UglifyJsPlugin({ 
     sourceMap: false, 
     mangle: false 
    }) 
    ] 
}; 
+5

मैं उत्तर को अप-वोट कर रहा हूं लेकिन यह अच्छा होगा अगर हम इसे वेबपैक JSON कॉन्फ़िगरेशन फ़ाइल के हिस्से के रूप में देख सकें जिसका आप उपयोग कर रहे हैं। मुझे यकीन नहीं था कि यह काम करने के लिए अपनी खुद की कॉन्फ़िगरेशन फ़ाइल में कहां रखा जाए। –

+5

धन्यवाद, मैंने एक कॉन्फ़िगरेशन फ़ाइल में प्लगइन को शामिल करने का एक उदाहरण जोड़ा है। – duncanhall

+0

मेरे लिए यह कहता है कि वेबपैक परिभाषित नहीं है। यदि मैं इसे 'var webpack = आवश्यकता (' वेबपैक ') के रूप में परिभाषित करता हूं;' वेबपैक कॉन्फ़िगरेशन में यह कहता है "मॉड्यूल 'वेबपैक नहीं मिल रहा है"। क्या मुझे कुछ स्थापित करने की ज़रूरत है? –

0

उन लोगों के लिए जो निष्क्रिय मैंगल और अभी भी समस्या है, जांचें कि क्या आप -p पैरामीटर के साथ बनाते हैं। ऐसा प्रतीत होता है -p आउटपुट को भी उलझाता है, और मेरे मामले में, मुझे UflifyJsPlugin मैंगल को झूठी पर स्विच करना था और इसे काम करने के लिए -p ध्वज के बिना बनाना था (लगभग 50 के जेएस के वजन की वृद्धि पर %)

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