Monorepo Kurulumunda TypeScript Nasıl Kullanılır
Monorepo kurulumu, tek bir depoda birden fazla paketi veya projeyi yönetmenizi sağlar. TypeScript ile bu kurulum, özellikle türleri, arayüzleri ve hatta yardımcı programları farklı paketler arasında paylaşmak için güçlüdür. Bu kılavuz, TypeScript'i monorepo ortamında nasıl kuracağınızı gösterecektir.
1. Monorepo'nun Kurulumu
Bir monorepo kurmak için npm workspaces veya yarn workspaces gibi araçları kullanabilirsiniz. Bu araçlar aynı depoda birden fazla paketi yönetmenize ve projeler arasında kod paylaşımını kolaylaştırmanıza olanak tanır.
1.1 Bir Monorepo'yu Başlatma
Öncelikle monoreponuz için yeni bir klasör oluşturun ve npm veya yarn ile başlatın.
mkdir my-monorepo
cd my-monorepo
npm init -yDaha sonra package.json: dosyanızda çalışma alanlarını yapılandırın:
{
  "name": "my-monorepo",
  "version": "1.0.0",
  "private": true,
  "workspaces": [
    "packages/*"
  ]
}Bu kurulum npm veya yarn'a tüm paketlerin packages klasöründe bulunacağını söyler.
2. Monorepo'ya Paket Ekleme
Monorepo'nuzda iki paket oluşturun. Bu örnek için, yeniden kullanılabilir kod için bir shared paketi ve bir ön uç uygulaması için bir web-app paketi oluşturacağız.
mkdir -p packages/shared
mkdir -p packages/web-appHer paketin içinde package.json: başlatın
cd packages/shared
npm init -y
cd ../web-app
npm init -y3. Monorepo'ya TypeScript Ekleme
Sonra TypeScript'i kuracağız. TypeScript'i ve gerekli bağımlılıkları monoreponuzun köküne yükleyin:
npm install typescript --save-devTüm monorepo için TypeScript yapılandırmasını tanımlamak üzere kök düzeyinde bir tsconfig.json oluşturun:
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "*": ["packages/*/src"]
    },
    "composite": true,
    "declaration": true,
    "outDir": "dist",
    "rootDir": ".",
    "skipLibCheck": true,
    "module": "ESNext",
    "target": "ES6",
    "moduleResolution": "node"
  },
  "include": ["packages/*"]
}Buradaki anahtar nokta, TypeScript'in monorepodaki farklı paketlerden gelen içe aktarımları anlamasını sağlayan paths seçeneğidir.
4. Her Pakette TypeScript'i Yapılandırma
Her paketin monorepoda düzgün çalışması için kendi tsconfig.json'sına ihtiyacı vardır. İşte shared paketi için bir örnek yapılandırma:
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist"
  },
  "include": ["src"]
}Ve web-app paketi için:
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist"
  },
  "include": ["src"]
}Artık her pakette TypeScript kullanılabiliyor ve yapılandırmalar kök tsconfig.json'dan paylaşılıyor.
5. Paketlere TypeScript Kodu Ekleme
Her iki pakete de örnek TypeScript kodu ekleyelim. shared paketinde, bir src klasörü oluşturup bir TypeScript dosyası ekleyelim:
mkdir -p packages/shared/src
touch packages/shared/src/index.tsindex.ts dizinine basit bir fonksiyon aktarın:
export const greet = (name: string): string => {
  return `Hello, ${name}!`;
}web-app paketinde, src klasörü ve index.ts dosyası oluşturun:
mkdir -p packages/web-app/src
touch packages/web-app/src/index.tsŞimdi paylaşılan fonksiyonu içe aktaralım:
import { greet } from 'shared';
console.log(greet('TypeScript Monorepo'));6. Monorepo'nun İnşası
Monorepo'daki tüm TypeScript kodunu derlemek için TypeScript derleyicisini kullanmamız gerekir. Monorepo'nun kökünde şunu çalıştırın:
npx tsc --buildBu komut, ilgili tsconfig.json dosyalarını takip ederek tüm paketleri derleyecektir.
Çözüm
Bu kılavuzda, TypeScript'i bir monorepo'da nasıl kuracağınızı ve kullanacağınızı ele aldık. Kodunuzu bir monorepo yapısında düzenleyerek, kodu birden fazla paket arasında kolayca paylaşabilir ve geliştirme sürecinizi daha verimli hale getirebilirsiniz. TypeScript'in güçlü yazım ve proje referanslarıyla, bu kurulum büyük ölçekli uygulamalar veya paylaşılan kütüphaneler için mükemmeldir.