YARN Paket Yöneticisi Nedir? Neden Kullanılır?
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
-
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.
-
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.
npm install yarn -g
YARN Kullanımı
YARN komutları npm komutlarına benzer. Çok farklı değiller.
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
2 Comments
Bilgilendirme için çok teşekkür ederim. Açıklayıcı olmuş.
Thanks for That’s great information