• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEduKodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

YARN Paket Yöneticisi Nedir? Neden Kullanılır?

  • Posted by Rahman Usta
  • Categories Genel
  • Date 12 Mayıs 2017

YARN, Facebook öncülüğünde ve Google, Exponent ve Tilde mühendislerinin desteğiyle geliştirilen npm alternatifi bir paket yöneticisidir.

YARN, npm aracının özelliklerini desteklemekle birlikte bir takım iyileştirmeleri içinde barındırıyor. Facebook ekibinin Node paket yönetimindeki baş ağrılarını dindirmek için tasarlanan YARN, temel olarak bazı performans ve tutarlılık avantajları sunuyor.

Performans

  1. npm aracı Node paketlerini merkezi repodan sıralı olarak indirirken, YARN eş zamanlı olarak birden fazla paketi indirebilir. Böylece daha hızlı yüklemelere kapı aralar. YARN ayrıca yarnpkg.com adında bir uzak depoya da sahiptir.

  2. YARN aracı ile yüklenen a.b.c sürümündeki bir paket, lokal bilgisayarınızda ayrıca depolanır. Böylece ilgili sürümdeki paket tekrar indirilmeye çalışıldığında uzak repoya uğraması gerekmez.

Tutarlılık

Node modül sisteminde her paketin bir versiyonu bulunmaktadır. Versiyonlama biçiminde semantik versiyonlama usülü tercih edilmektedir. Bilindiği üzere modül bağımlılıkları isim ve sürüm aralığı olarak package.json isimli dosyada tutulmaktadır.

Örneğin, aşağıdaki amodule, lemodule modülünün sürüm olarak 1.0.0 ve yukarısı ve 1.0.7 ve aşağısına bağımlıymış. Onsuz yapamazmış.

{
    "name": "amodule",
    ...
    "dependencies": {
        "lemodule": ">=1.0.0 <=1.0.7"
    }
    ...
}

Fakat bu şekilde belirtilen sürüm aralıkları olası tutarsızlıklara açıktır. Örneğin sizin makinenizde 1.0.2 sürümü yüklüyken, arkadaşınızın makinesinde 1.0.4 sürümü yüklü olabilir. 1.0.2 de bulunabilecek bir olası bug tüm düzeni etkileyebilir. Bunun bir de canlı ortamda karşınıza çıktığını bir düşünün!

Bu gibi bir sorunu gidermek için Node paket sisteminin shrinkwrap özelliği bulunuyor. Eğer Node projenizde npm-shrinkwrap.json isimli bir dosya varsa, yüklediğiniz paketlere dair bazı ek bilgiler, en önemlisi de kullanılan tam versiyon bu dosyada tutulur. Fakat npm-shrinkwrap.json varsayılan olarak oluşturulmaz, sizin eklemeniz gerekir.

YARN ise benzer bir yapıyla yarn.lock adında özel bir dosya kullanmaktadır. Eğer projenizde yarn.lock bulunmuyorsa, YARN tarafından oluşturulmakta ve güncellenmektedir. yarn.lock içinde, tam versiyon, paketin nereden indirildiği ve veri bütünlüğünün kontrol edilmesi için checksum bilgisi gibi bilgiler bulundurulur. Bu sayede aynı proje kullanıcılarının T anında aynı modül ağacıyla çalışması sağlanmış olur. Paketler ayrıca checksum bilgileri üzerinden kontrol edildiğinden gözler arkada değildir. Örnek bir yarn.lock

YARN Kurulumu

YARN aracını global olarak kurabiliriz.

Önce kuruyoruz
npm install yarn -g

YARN Kullanımı

YARN komutları npm komutlarına benzer. Çok farklı değiller.

Sonra kullanıyoruz
yarn install (1)
yarn add [paket_ismi] (2)
yarn update [paket_ismi] (3)
yarn remove [paket_ismi] (4)
yarn --help (5)
1 package.json içindeki bağımlılıkları yükler
2 Bir paket yükler
3 Bir paketi günceller
4 Bir paketi siler
5 Daha fazlasını isteyin

Umarım faydalı olur.

Ayrıca YARN’in duyurulduğu blog yazısını okuyabilirsiniz. Yarn: A new package manager for JavaScript

Tekrar görüşmek dileğiyle.

Tag:javascript, node.js, npm, yarn

  • Share:
author avatar
Rahman Usta
Kodedu.com bünyesinde eğitim ve danışmanlık faaliyetleri sürdüren Rahman Usta, 2012 yılında yayına çıkan popülerJava Mimarisiyle Kurumsal Çözümler ve 2014 yılında yayınlanan Java 8 Ebook kitaplarının yazarıdır. Açık kaynak dünyasına katkı veren yazar, geliştirdiği AsciidocFX projesiyle Duke's Choice Award 2015 ödülünü kazanmıştır. Rahman ayrıca, Istanbul JUG'un ve Java standartlarını geliştiren JCP (Java Community Process)'in bir üyesidir. 2018 yılında Java Şampiyonu olarak seçilmiştir.

Previous post

21. Yüzyılda Kağıt Fatura Kesmek
12 Mayıs 2017

Next post

Rapid Dashboard üzerinde Docker Remote API kullanımı
17 Mayıs 2017

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    2 Comments

  1. Bekir
    18 Ocak 2018
    Cevapla

    Bilgilendirme için çok teşekkür ederim. Açıklayıcı olmuş.

  2. cengiz
    17 Eylül 2019
    Cevapla

    Thanks for That’s great information

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

CDI – @Default and @Inject Annotations
14Haz2013
Maven Plugin Nasıl Geliştirilir?
18Tem2014
Dağıtık uygulama çatılarının karşılaştırılması (Hadoop, GridGain, Hazelcast, DAC) Bölüm II
28Kas2011
Webiner videosu : Javascript ve Rest iletişimi
27Eyl2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • YAML Nedir? Neden YAML Kullanmalıyız? için shahriyar
  • Java Persistence API Nedir? (Giriş) için Utku
  • Java 8 – CompletableFuture ile Asenkron Programlama için Rahman Usta
  • Java 8 – CompletableFuture ile Asenkron Programlama için burak
  • Arm7 Nxp 2104 işlemci ile basit bir Uygulama için Mustafa Dinc

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.