TypeScript Academy · पाठ

मोनोरेपो में वृद्धिशील बिल्ड और कैश

वृद्धिशील संकलन और Turborepo से बिल्ड समय को अनुकूलित करें

पाठ 4, कुल 4 में से13 चरण

मोनोरेपो में वृद्धिशील बिल्ड और कैश, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

क्रमिक निर्माण क्यों महत्वपूर्ण हैं

बड़े मोनोरेपो में हर बदलाव पर हर पैकेज का पुनर्निर्माण धीमा होता है। क्रमिक निर्माण यह पता लगाते हैं कि क्या बदला है और केवल प्रभावित पैकेजों को फिर से संकलित करते हैं।

# Without incremental: all 20 packages rebuild every time
# With incremental: only 2 changed packages rebuild

TypeScript क्रमिक मोड

पिछली निर्माण-अवस्था को तेज़ी से दोबारा चलाने के लिए कैश करने वाली .tsbuildinfo फ़ाइल बनाने हेतु tsconfig में "incremental": true सक्षम करें।

{
  "compilerOptions": {
    "incremental": true,
    "tsBuildInfoFile": "./.tsbuildinfo"
  }
}

परियोजना संदर्भों के लिए tsc --build

परियोजना संदर्भ वाले कार्यक्षेत्रों के लिए tsc --build स्वभावतः क्रमिक होता है—यह समय-मुहरों को ट्रैक करता है और अद्यतन पैकेजों को छोड़ देता है।

# First build: all packages compiled
tsc --build
# Second build: only changed packages compiled
tsc --build
# [12:00:01 PM] Project 'packages/core' is up to date

Turborepo कैशिंग

Turborepo कार्यों के आउटपुट, जैसे dist/, को कैश करता है और अपरिवर्तित इनपुट होने पर उन्हें कैश से पुनर्स्थापित करता है—रिमोट कैश के माध्यम से पूरी टीम में।

// turbo.json
{
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**", ".tsbuildinfo"]
    }
  }
}

Turborepo के साथ रिमोट कैशिंग

निर्माण कैश को सतत एकीकरण मशीनों और टीम सदस्यों के बीच साझा करें, ताकि किसी को वह चीज़ फिर से न बनानी पड़े जिसे कोई और पहले ही बना चुका है।

# Link to Vercel remote cache
npx turbo login
npx turbo link

Nx गणना कैश

Nx परियोजना निर्भरता ग्राफ़ के आधार पर प्रभावित परियोजनाओं का सूक्ष्म विश्लेषण करके इसी तरह की कैशिंग सुविधा देता है।

# Nx: only test affected projects
npx nx affected --target=test --base=main

कैश के इनपुट और आउटपुट

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

// turbo.json with inputs
{
  "pipeline": {
    "build": {
      "inputs": ["src/**", "tsconfig.json"],
      "outputs": ["dist/**"]
    }
  }
}

कैश अमान्य करना

इनपुट बदलने पर कैश अमान्य हो जाते हैं। अनावश्यक पुनर्निर्माण से बचने के लिए अस्थिर फ़ाइलों, जैसे लॉग या समय-मुहरों, को इनपुट में शामिल न करें।

# Force rebuild even if cached
turbo run build --force

सतत एकीकरण

सतत एकीकरण (GitHub Actions, CircleCI) को रिमोट कैश से जोड़ें, ताकि PR निर्माण पिछले निर्माण अवशेषों का पुनः उपयोग करके तेज़ हों।

# .github/workflows/ci.yml
- name: Build
  run: npx turbo build
  env:
    TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
    TURBO_TEAM: my-team

केवल क्रमिक प्रकार-जाँच

तेज़, केवल-प्रकार-जाँच वाले सतत एकीकरण चरणों के लिए tsc --noEmit --incremental का उपयोग करें। यह आउटपुट निर्माण छोड़ देता है, फिर भी कैशिंग का लाभ देता है।

npx tsc --noEmit --incremental
# Quick type check with .tsbuildinfo cache

पुनरावलोकन: क्रमिक निर्माण

मोनोरेपो में क्रमिक निर्माण, हर बदलाव पर संकलन-कार्य को न्यूनतम करने के लिए TypeScript के tsBuildInfo और tsc --build को Turborepo या Nx कैशिंग के साथ मिलाकर उपयोग करते हैं।

त्वरित जाँच

क्रमिक निर्माण सक्षम करने के लिए TypeScript कौन-सी फ़ाइल बनाता है?

आपने क्या सीखा

क्रमिक निर्माण अपरिवर्तित पैकेजों को छोड़ने के लिए TypeScript की .tsbuildinfo फ़ाइल और tsc --build का उपयोग करते हैं। Turborepo और Nx पूरे मोनोरेपो में रिमोट कैशिंग और केवल प्रभावित परियोजनाओं के विश्लेषण से इसे और विस्तृत करते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

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

क्या “मोनोरेपो में वृद्धिशील बिल्ड और कैश” पाठ निःशुल्क है?

हाँ—“मोनोरेपो में वृद्धिशील बिल्ड और कैश” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मोनोरेपो में वृद्धिशील बिल्ड और कैश” में मैं क्या सीखूँगा?

वृद्धिशील संकलन और Turborepo से बिल्ड समय को अनुकूलित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“मोनोरेपो में वृद्धिशील बिल्ड और कैश” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. TypeScript प्रोजेक्ट रेफ़रेंस समझाए गए
  2. TypeScript के साथ pnpm वर्कस्पेस
  3. साझा प्रकार पैकेज की रणनीति
  4. मोनोरेपो में वृद्धिशील बिल्ड और कैश
← TypeScript Academy पर वापस जाएँ