Uncaught TypeError: Cannot assign to read only property '__esModule' of #<Object>
कुछ पुराने ब्राउज़र में (< = क्रोम 1, एंड्रॉयड 4, सफारी 5)।
यह समस्या से redux और react-reduxlib
निर्माण में लाइन exports.__esModule = true;
outputting लेकिन अपने आवेदन के बजाय Object.defineProperty
का उपयोग कर (क्योंकि वे build loosely और मुझे नहीं पता) स्टेम लगता है।
दो समाधान हैं:
भी
loose
मोड में अपने आवेदन का निर्माण।react-redux/src
औरredux/src
आयात करना और इसे उसी के साथ बनाना .babelrc एप्लिकेशन के रूप में (सबकुछ ढीला नहीं है)।
जब तक वे सुसंगत और दोनों कर रहे हैं के रूप में:
Object.defineProperty(exports, "__esModule", {
value: true
});
और exports.__esModule = true;
मेरी उत्पादन में नहीं सह अस्तित्व है, सब कुछ काम करता है।
मेरा सवाल है, सही समाधान क्या है? यह केवल पुराने ब्राउज़र को क्यों प्रभावित करता है? और वे संघर्ष क्यों करते हैं?
यहां एक similar question है।
"plugins": [
"babel-plugin-add-module-exports"
]
अधिक जानकारी के this website के लिए:
मुझे यकीन नहीं है कि यह क्यों विफल होगा। इसे केवल मॉड्यूल की शुरुआत में ही असाइन किया जाता है, इसे कभी भी पुनः असाइन नहीं करना चाहिए, ताकि त्रुटि बहुत अजीब हो। क्या आप यह देखने में सक्षम हैं कि यह वास्तविक त्रुटि कहां फेंक रहा है? – loganfsmyth
यह पहले आयातित मॉड्यूल में फेंकता है जहां 'निर्यात .__ esModule = true; 'मौजूद है। मुझे लगता है कि पहले 'ऑब्जेक्ट.डेफिनप्रॉपर्टी' के बाद माना जाता है कि साझा निर्यात ऑब्जेक्ट केवल पढ़ा जाता है, इसलिए असाइनमेंट बाद के मॉड्यूल में टूट जाता है जो कम से कम बनाए गए थे (लेकिन केवल ब्राउज़र में फेंकते हैं)। मैं पूरी तरह से निशान खो रहा हूं क्योंकि मुझे प्रदान किए गए लिंक के बगल में इस मुद्दे के साथ किसी और को खोजना प्रतीत नहीं होता है। –
हालांकि मैं इस बारे में उलझन में हूं। 'निर्यात' साझा नहीं किया जाता है, इसे केवल एक ही मॉड्यूल में स्कॉप्ड किया जाना चाहिए। – loganfsmyth