CodeBlanks Logo Icon CodeBlanks

Yarn workspaces

Yarn workspaces ile monorepo öğrenirsin.

Yarn workspaces

Yarn workspaces, Yarn'ın gömülü monorepo desteğidir. Kök package.json'a workspaces alanı eklenince Yarn tüm alt paketleri tek bir node_modules'de toplar. Bu, diskten tasarruf sağlar.

Bir alt paket diğerini kullanıyorsa "my-utils": "*" ile bağlanır; Yarn sembolik link kurar. yarn workspaces run build tüm paketlerde build çalıştırır.

Tek node_modules

Yarn workspaces, tüm bağımlılıkları kök node_modules'de toplar (hoisting). Her paket kendi node_modules'ünü tutmaz; bu disk ve kurulum süresi kazandırır.

Bir paket özgül bir sürüm gerekiyorsa kendi node_modules'ünde tutulur; kök sürümle çakışırsa Yarn yerel kopyayı kullanır. Bu, otomatik sürüm çözümü sağlar.

Uygulama Yarn workspace bağımlılık ekle

Bir apps/mobile paketinin package.json'ında, @my/ui paketini bağımlılık olarak ekle. Sürüm "*" olsun. dependencies alanı altında olsun.

Başlangıç kodu

App.js
{
  "name": "@my/mobile",
  "version": "1.0.0",
  "dependencies": {
    "react": "18.2.0"
    // @my/ui bağımlılığını buraya ekle
  }
}

Örnek çözüm

App.js
{
  "name": "@my/mobile",
  "version": "1.0.0",
  "dependencies": {
    "react": "18.2.0",
    "@my/ui": "*"
  }
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yarn ile paket çalıştırma komutu

Soru
yarn ____ run build
Cevap
yarn workspaces run build

Açıklama: 'yarn workspaces run build' tüm paketlerde çalışır.

2 Yarn workspaces bağımlılıkları nerede toplar?

  • Kök node_modules'de
  • Yalnızca GitHub'da
  • Yalnızca cache'te
  • Her paketin kendi node_modules'inde Doğru cevap

Açıklama: Yarn kök node_modules'e toplar (hoisting).

3 Yarn workspaces parçalarını eşleştir

Kavram Anlamı
workspaces alanı package.json'da
hoisting Kök node_modules
symlink Paketler arası bağ
yarn workspaces run Tüm paketlerde komut

Uzman bölümündeki tüm dersler