native modules चलते हैं, पर बिना bundle की सैकड़ों फाइलें भेजने का मतलब है सैकड़ों requests और dependency का गहरा झरना, जो HTTP/2 पर भी धीमा है। bundling से tree shaking, minification, हर route पर code splitting, लंबी cache उम्र के लिए content hashed filenames, और TypeScript तथा JSX बदलने की एक जगह मिलती है। dev servers अब तुरंत शुरू होने के लिए native modules परोसते हैं, फिर प्रोडक्शन के लिए bundle करते हैं, यानी दोनों का सबसे अच्छा हिस्सा।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर जानना चाहता है कि आप अपनी toolchain समझते हैं या ऐसा config विरासत में मिला है जिसे छूने से आप डरते हैं। dev बनाम प्रोडक्शन का बंटवारा, tree shaking की शर्तें और code splitting की सीमाएं समझाना दिखाता है कि आप build सिर्फ चला नहीं सकते, डिबग भी कर सकते हैं। यह स्वाभाविक रूप से bundle size के अनुशासन तक ले जाता है, जहां फ्रंटएंड की परफॉर्मेंस आमतौर पर जीती या हारी जाती है।
अपना जवाब कैसे स्ट्रक्चर करें
- क्यों का सीधा जवाब दें: request के झरने और cache की रणनीति।
- गिनाएं कि bundling जोड़ने से आगे क्या देती है।
- आधुनिक टूल्स में dev बनाम प्रोडक्शन का बंटवारा बताएं।
- बताएं कि chunks कहां बांटनी हैं, यह आप कैसे तय करते हैं।
उदाहरण जवाब
native modules अब सच में इस्तेमाल लायक हैं, पर जिस पल मेरे पास असली dependency tree होता है, मैं ब्राउज़र से कह रहा होता हूं कि सैकड़ों छोटी फाइलें झरने की तरह ढूंढो और लाओ, और graph का हर स्तर एक और round trip लेता है। bundling उसे समेट देती है। साथ ही मुझे tree shaking मिलती है, तो बिना इस्तेमाल वाले exports जाते ही नहीं, minification, content hashed filenames ताकि मैं assets को साल भर cache कर सकूं, और TypeScript compile करने की एक ही जगह। development में मैं ऐसा server इस्तेमाल करता हूं जो native ES modules परोसता है और मांग पर बदलता है, तो प्रोजेक्ट कितना भी बड़ा हो startup तुरंत होता है, फिर प्रोडक्शन के लिए एक rolled up build बनता है। splitting में मैं डिफ़ॉल्ट रूप से हर route पर बांटता हूं, और उसके ऊपर हर भारी चीज़ के इर्द गिर्द lazy सीमाएं रखता हूं जो पहले render के लिए ज़रूरी नहीं, जैसे rich text editor या charting library। और मैं CI में एक size बजट रखता हूं जो सीमा पार होते ही build फेल कर देता है, क्योंकि bundle size हमेशा एक एक छोटी dependency से बिगड़ता है, और जब तक वह साफ दिखे तब तक वह एक fix नहीं, एक पूरा प्रोजेक्ट बन चुका होता है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- किसी dependency पर tree shaking को क्या रोक देता है?
- साझा chunk में क्या जाना चाहिए, यह कैसे तय करते हैं?
- जब प्रोडक्शन build dev से अलग बर्ताव करे तो आप सबसे पहले क्या जांचते हैं?
फ्रंटएंड डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें