logo

I create accessible, user-friendly web applications with the best efficient solutions and best practices of the frontend world for SAAS projects. I`m currently working @smartgift

Download

Bu ay öğrendiğim harika şeylerden biriside bu oldu diyebilirim. Hepimiz package.json dosyalarında “dependencies” veya “devDependencies” lere aşinayız. Bazı package.json dosyalarında ise aşağıda ki gibi “peerDependencies” kullanımı görmüş olabilirsiniz. Peki bu bize ne söyler ve ne işe yarar?

dependencies: Projemizin çalışması için kesnilikle yüklü olması gereken yani projemizin bağlı olduğu zorunlu paketlerdir.

devDependencies: Projemizin development yaparken ihtiyacımız olan kullanacağımzı paketlerdir. Bu paketler productionda projemizin veya uygulamamızın kullanmadığı ihtiyacı olmadığı paketlerdir.

peerDependencies: Burası biraz karışık. O yüzden örnek vererek açıklayacağım.

Diyelim “shopping-app” adında bir uygulama geliştiriyoruz. Ve uygulamamıza “packageA” librarysini eklemek istiyoruz. 
Ve **“packageA ”**librarysinde peerDependencies olarak “nodemon” paketi eklenmiş.

Ve “packageA” librarysinin projemizde doğru çalışması için, 
“nodemon” paketinin “dependencies” olarak, 
“shopping-app” uygulamamızın “package.json” dosyasına dependencies olarak eklenmesi yani yüklememiz gerektiğini söyler.

Eğer “peerDependencies”leri olan bir paketi projemize eklediğimizde, o paketin “peerDependencies”lerini projemize “dependencies” olarak yüklemezsek, npm install veya yarn install yaptığımızda, package managerimiz bizi uyaracak ve “peerDependencies”lerin yüklenmesini terminalda sarı renkli warning yazılarıyla bize gösterecek.

Gelin bir örnek daha verelim.

package a mız dependencies olarak b packagesine sahip.

a/package.json

package b mizde peerDependenciy olarak package c yi istiyor:

*b/package.json*

Bu nedenle package a da, package c yi dependency olarak eklemeliyiz yoksa package b yi yüklediğimiz zaman terminal bize uyarı olarak yüklememiz gerektiğini söyleyen bir mesaj gösterecek. (Ve muhtemelen uygulamamızda fail olacak ve düzgün çalışmayacak peerDependencyi yüklemediğimiz için)

Package version sürüm numaraları uyumlu olmalıdır, yani eğer peerDependency olarak eklenen package 2.x versiyonunu istiyorsa, 1.x veya aşağısında ki herhangi bir sürümünü dependency olarak yükleyemezsin.