TypeScript Academy · Pelajaran

Build Inkremental dan Cache dalam Monorepo

Optimalkan waktu build dengan kompilasi inkremental dan Turborepo.

Pelajaran 4 dari 413 langkah

Build Inkremental dan Cache dalam Monorepo adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Mengapa Pembangunan Inkremental Penting

Dalam repositori tunggal yang besar, membangun ulang setiap paket setiap kali terjadi perubahan itu lambat. Pembangunan inkremental mendeteksi perubahan dan hanya mengompilasi ulang paket yang terdampak.

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

Mode Inkremental TypeScript

Aktifkan "incremental": true dalam tsconfig untuk menghasilkan berkas .tsbuildinfo yang menyimpan status pembangunan sebelumnya agar proses berikutnya berjalan cepat.

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

tsc --build untuk Referensi Proyek

tsc --build secara bawaan bersifat inkremental untuk ruang kerja dengan referensi proyek—perintah ini melacak cap waktu dan melewati paket yang sudah terbaru.

# 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

Penyimpanan Hasil Turborepo

Turborepo menyimpan keluaran tugas (seperti dist/) dan memulihkannya dari penyimpanan saat masukan tidak berubah—di seluruh tim melalui penyimpanan jarak jauh.

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

Penyimpanan Jarak Jauh dengan Turborepo

Bagikan penyimpanan pembangunan ke seluruh mesin integrasi berkelanjutan dan anggota tim agar tidak ada yang membangun ulang sesuatu yang sudah dibangun oleh orang lain.

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

Penyimpanan Komputasi Nx

Nx menyediakan penyimpanan serupa dengan analisis terperinci tentang bagian yang terdampak berdasarkan graf dependensi proyek.

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

Masukan dan Keluaran Penyimpanan

Agar penyimpanan berjalan benar, nyatakan semua masukan (berkas sumber, variabel lingkungan) dan keluaran (direktori dist, tsbuildinfo) dalam konfigurasi alat pembangunan Anda.

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

Membatalkan Penyimpanan

Penyimpanan dibatalkan ketika masukan berubah. Hindari menyertakan berkas yang mudah berubah (seperti catatan atau cap waktu) sebagai masukan agar pembangunan ulang yang tidak perlu dapat dicegah.

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

Integrasi CI

Hubungkan CI (GitHub Actions, CircleCI) ke penyimpanan jarak jauh agar pembangunan PR berjalan cepat dengan menggunakan kembali artefak pembangunan sebelumnya.

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

Hanya Pemeriksaan Tipe Inkremental

Gunakan tsc --noEmit --incremental untuk langkah CI yang hanya memeriksa tipe secara cepat; langkah ini melewati pembuatan keluaran, tetapi tetap memanfaatkan penyimpanan.

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

Ringkasan: Pembangunan Inkremental

Pembangunan inkremental dalam repositori tunggal menggunakan tsBuildInfo TypeScript + tsc --build, yang dipadukan dengan penyimpanan Turborepo atau Nx untuk meminimalkan pekerjaan kompilasi pada setiap perubahan.

Pemeriksaan Singkat

Berkas apa yang dibuat TypeScript untuk mengaktifkan pembangunan inkremental?

Yang Anda Pelajari

Pembangunan inkremental menggunakan berkas .tsbuildinfo TypeScript dan tsc --build untuk melewati paket yang tidak berubah. Turborepo dan Nx memperluasnya dengan penyimpanan jarak jauh dan analisis hanya pada bagian yang terdampak di seluruh repositori tunggal.

Gratis untuk memulai

Belajar TypeScript dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
101
Pelajaran
352

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Build Inkremental dan Cache dalam Monorepo” gratis?

Ya — teks lengkap “Build Inkremental dan Cache dalam Monorepo” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Build Inkremental dan Cache dalam Monorepo”?

Optimalkan waktu build dengan kompilasi inkremental dan Turborepo. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Build Inkremental dan Cache dalam Monorepo” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penjelasan Referensi Proyek TypeScript
  2. Workspace pnpm dengan TypeScript
  3. Strategi Paket Tipe Bersama
  4. Build Inkremental dan Cache dalam Monorepo
← Kembali ke TypeScript Academy