होम·एरर संदेश

webpack · npm

संदेश

Module not found: Error: Can't resolve './components/Button' in '/app/src'

इसका मतलब

bundler को उस रास्ते पर वह फ़ाइल नहीं मिली — यह आपका ही import है, कोई package नहीं। ऐसा तब होता है जब सापेक्ष रास्ता एक स्तर खिसका हो, जब extension छूटा या ग़लत हो, या जब फ़ाइल के नाम का छोटा-बड़ा अक्षर import से अलग हो। अंतिम वाला सबसे कपटी है: macOS और Windows के filesystem छोटे-बड़े अक्षर में भेद नहीं करते, इसलिए आपकी मशीन पर चलता है और टूटता केवल Linux CI पर है। उस डायरेक्टरी का ls लें और import से अक्षर-दर-अक्षर, छोटे-बड़े अक्षर सहित मिलाएँ। यदि नाम रास्ता नहीं बल्कि package है तो उसे लगा दें; दोनों में से किसी भी हाल में कुछ मिटता नहीं।

सुधार

इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।

कौन देता है
webpack
npm
20

npm में कारण अंतिम छह npm ERR! पंक्तियों में नहीं, पहली code XXXX पंक्ति में लिखा होता है, और जब गड़बड़ी आपके कोड की जगह dependency के पेड़ या native build से आती है, तो node_modules मिटाकर फिर install करने से आधे मामले सुलझ जाते हैं।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “Module not found: Error: Can't resolve './components/Button' in '/app/src'” का क्या मतलब है?

bundler को उस रास्ते पर वह फ़ाइल नहीं मिली — यह आपका ही import है, कोई package नहीं। ऐसा तब होता है जब सापेक्ष रास्ता एक स्तर खिसका हो, जब extension छूटा या ग़लत हो, या जब फ़ाइल के नाम का छोटा-बड़ा अक्षर import से अलग हो। अंतिम वाला सबसे कपटी है: macOS और Windows के filesystem छोटे-बड़े अक्षर में भेद नहीं करते, इसलिए आपकी मशीन पर चलता है और टूटता केवल Linux CI पर है। उस डायरेक्टरी का ls लें और import से अक्षर-दर-अक्षर, छोटे-बड़े अक्षर सहित मिलाएँ। यदि नाम रास्ता नहीं बल्कि package है तो उसे लगा दें; दोनों में से किसी भी हाल में कुछ मिटता नहीं।

Q. इसे कैसे ठीक करें?

एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।

Q. यह कौन-सा औज़ार देता है?

webpack। यह npm में आता है, और संदेश 9 शब्दों का है।

साथ आने वाले एरर