2013-07-31 8 views
9

मेरे पास मेरी जावास्क्रिप्ट फ़ाइल में निम्न मॉड्यूल निर्यात है, ताकि मैं इसे node.js आधारित बिल्ड सेटअप (ग्रंट, आवश्यकता ..) से एक्सेस कर सकूं।Uncaught ReferenceError से बचने के लिए कैसे करें

.... 
if(module && module.exports) { 
     module.exports = m; 
    } 

जब मैं ब्राउज़र में एक ही फाइल का उपयोग करें, यह त्रुटि देता है

Uncaught ReferenceError: module is not defined const.js:49 
(anonymous function) 

मैं बैकएंड के रूप में नहीं उपयोग नोड कर । मैं इस त्रुटि से कैसे बच सकता हूं? यही है, मुझे m निर्यात करने की आवश्यकता है ताकि require इसे बिल्ड (नोड आधारित) के दौरान, लेकिन ब्राउज़र में स्टैंडअलोन काम करता है।

ब्राउजर वैरिएबल मॉड्यूल को अपरिभाषित क्यों नहीं करता है और कोई त्रुटि नहीं फेंकता है?

धन्यवाद।

उत्तर

23

टेस्ट typeof module !== "undefined"module

क्यों ब्राउज़र अपरिभाषित के रूप में चर मॉड्यूल का इलाज नहीं है और किसी भी त्रुटि फेंक नहीं के बजाय?

क्योंकि, साथ ही अपरिभाषित किया जा रहा है, यह भी अघोषित है। जब आप एक चर नाम में टाइपो बनाते हैं तो त्रुटि को फेंकने के लिए यह एक उत्कृष्ट विशेषता है। उदाहरण के लिए, निम्नलिखित के लिए गलत होने के बजाय त्रुटि के लिए बेहतर है:

var loose = true; 
if (lose) { 
} 
+0

+1 धन्यवाद .. जल्द ही स्वीकार करेगा। – bsr

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