NPM ve Yarn Nedir? Hangi Paket Yöneticisini Seçmelisiniz?

Kerimcan Yektek
27/5/2024

Yazılım geliştirme süreçlerinde paket yöneticileri, projelerin bağımlılıklarını yönetmek, paketleri yüklemek, güncellemek ve kaldırmak için kullanılan araçlardır. İki popüler paket yöneticisi olan NPM ve Yarn, JavaScript ekosisteminde geniş bir kullanım alanına sahiptir. Bu rehberde, NPM ve Yarn nedir, nasıl kullanılır, avantaj ve dezavantajları nelerdir, hangi durumlarda tercih edilmelidir ve performans farklılıkları gibi konulara detaylı bir şekilde değineceğiz.

Paket Yöneticisi Nedir?

Paket yöneticisi, yazılım projelerinde kullanılan kütüphane ve araçları yönetmek için kullanılan bir yazılımdır. Paket yöneticileri, bağımlılıkların kolayca yüklenmesini, güncellenmesini ve kaldırılmasını sağlar. Ayrıca, projelerin tutarlılığını korumak ve farklı ortamlar arasında uyumluluğu sağlamak için önemli bir rol oynar.

NPM Nedir?

NPM (Node Package Manager), Node.js ekosisteminde kullanılan en popüler paket yöneticisidir. NPM, Node.js ile birlikte gelir ve JavaScript projeleri için kütüphane ve modülleri yönetmek için kullanılır. NPM'in temel işlevleri arasında paket yükleme, güncelleme, kaldırma ve bağımlılık yönetimi bulunur.

1. NPM Kurulumu

NPM, Node.js ile birlikte gelir, bu yüzden öncelikle bilgisayarınıza Node.js indirip kurmanız gerekir. Kurulumdan sonra, komut satırında 'npm -v' komutu çalıştırarak NPM'in yüklü olup olmadığını ve versiyonunu kontrol edebilirsiniz.

2. Proje Başlatma (package.json Oluşturma)

Kurulum başarılı bir şekilde tamamlandıysa proje klasörünüzde aşağıdaki komutu çalıştırarak bir 'package.json' dosyası oluşturabilirsiniz.

Yazmış olduğunuz bu komut, size projeniz hakkında birkaç soru soracak ve ardından bir 'package.json' dosyası oluşturacaktır. Hızlı bir başlangıç için 'npm init -y' komutunu kullanabilirsiniz, bu komut varsayılan değerlerle 'package.json' dosyasını oluşturur.

3. NPM ile Paket Yükleme

NPM kullanarak bir paket yüklemek için "npm install <paket-adı>" komutu kullanabilirsiniz.

Bir örnek yapalım ve daha önce yayınladığımız "En İyi JavaScript Kütüphaneleri" yazımızda bahsettiğimiz popüler bir javascript kütüphanesi olan Lodash'i NPM ile kuralım.

Bu komut, 'node_modules' adlı bir klasör oluşturur ve lodash paketini bu klasöre indirir. Ayrıca, 'package.json' dosyasına dependencies (bağımlılıklar) kısmına ekler.

4. Paketleri Global Olarak Yükleme

Bazı paketler, projenizin her yerinde kullanılmak üzere global olarak yüklenebilir. Örneğin, "nodemon" adlı bir paketi global olarak yüklemek için:

Bu komut nodemon'u global olarak sisteminize yükler, böylece herhangi bir dizinde 'nodemon' komutunu kullanabilirsiniz.

5. Paket Güncelleme ve Kaldırma

Yüklü paketleri güncellemek için 'npm update' komutunu kullanabilirsiniz. Belirli bir paketi güncellemek için:

Bir paketi kaldırmak için 'npm uninstall' komutunu kullanabilirsiniz:

6. NPM ile Proje Bağımlılıklarını Yükleme

Paket yöneticisi olarak NPM kullandığınız projede kullandığınız tüm bağımlılıkları yüklemek için şu komutu çalıştırmanız yeterlidir:

Yarn Nedir?

Yarn, JavaScript projelerinde bağımlılıkları yönetmek için kullanılan modern ve hızlı bir paket yöneticisidir. Facebook (Meta) tarafından 2016 yılında geliştirilmiş ve açık kaynaklı olarak sunulmuştur. Yarn, özellikle büyük projelerde bağımlılık yönetimini daha verimli ve güvenilir hale getirmek amacıyla tasarlanmıştır.

1. Yarn Kurulumu

Sistemizde Node.js ve npm kurulu olmalıdır. Eğer kurulu değilse yukarıdaki adımları takip ederek kurulumları tamamlayarak başlamalısınız.

Yarn kurmak için terminal veya komut istemcisine aşağıdaki komutu yazın:

2. Yarn Projesi Oluşturma

Yeni bir yarn projesi oluşturalım.

Oluşturduğumuz projeyi 'yarn init' komutu ile başlatalım.

Bu komut, sizi bazı sorularla yönlendirecek ve sonunda bir 'package.json' dosyası oluşturacaktır.,

3. Yarn ile Paket Yükleme

NPM ile yapmış olduğumuz popüler javascript kütüphanelerinden olan Lodash kurulumunu şimdi Yarn ile yapalım:

Bu komut, lodash paketini indirir ve 'package.json' dosyasına bağımlılık olarak ekler.

4. Yarn ile Paket Kaldırma

Bir paketi kaldırmak için 'yarn remove' komutu kullanılır.

5. Yarn ile Proje Bağımlılıklarını Yükleme

Projede listelenen tüm bağımlılıkları yüklemek için sadece 'yarn install' komutu çalıştırmanız yeterlidir:

NPM mi Yarn mı?

NPM ve Yarn arasındaki tercih, projeye ve kişisel tercihlere bağlı olarak değişebilir. Küçük projeler ve hızlı başlangıçlar için NPM yeterli olabilirken, büyük projelerde ve monorepo yapılarında Yarn’ın sağladığı hız ve özellikler avantaj sağlayabilir. Her iki paket yöneticisi de sürekli gelişmekte olup, kullanıcılara geniş bir yelpazede özellikler sunar.

NPM ve Yarn'ı 3 ana başlıkta inceleyelim, avantaj ve dezavantajlarına bakalım:

Hız ve Performans

NPM, Node paketlerini merkezi bir repodan sıralı olarak indirirken, Yarn eş zamanlı olarak birden fazla paketi indirebilir. Bu, daha hızlı yüklemelere kapı aralar. Yarn ayrıca yarnpkg.com adında bir uzak depoya sahiptir ve yüklenen paketlerin sürümlerini lokal bilgisayarda saklar. Bu sayede aynı sürümdeki paket tekrar indirilmeye çalışıldığında, uzak repoya gitmesine gerek kalmaz ve işlem daha hızlı gerçekleşir. NPM, 5.0 sürümünden itibaren performans iyileştirmeleri yapmış olsa da, Yarn’ın paralel indirme yetenekleri genellikle daha hızlı yüklemeler sağlar.

Tutarlılık

Node modül sisteminde her paketin bir versiyonu bulunur ve semantik versiyonlama usulü tercih edilir. Ancak, belirli bir sürüm aralığında olası tutarsızlıklar yaşanabilir. Ö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. Bu durum, özellikle takım çalışmasında büyük sorunlara yol açabilir. Yarn, bu sorunu çözmek için yarn.lock dosyasını kullanır. Yarn.lock, bağımlılıkların kesin sürümlerini sabitler ve bu sayede projelerin farklı ortamlarda aynı şekilde çalışmasını sağlar. NPM, 5.0 sürümünden itibaren benzer bir kilit dosyası olan package-lock.json'u kullanmaya başlamıştır. Bu dosya, bağımlılıkların kesin sürümlerini belirleyerek tutarlılığı sağlar.

Güvenlik

NPM ve Yarn, güvenlik yaklaşımları açısından farklılık gösterir. NPM, paketlerin yüklenmesi sırasında otomatik olarak kod çalıştırılmasına izin verir, bu da potansiyel güvenlik riskleri oluşturabilir. Örneğin, kötü niyetli bir paket, kurulum sırasında zararlı kod çalıştırabilir. Buna karşılık, Yarn, yalnızca yarn.lock veya package.json dosyalarındaki bilgilerden yükleme yaparak güvenliği artırır. Bu yaklaşım, aynı paketin tüm cihazlarda tutarlı bir şekilde kurulmasını sağlar ve sürüm farklılıklarından kaynaklanan hataları önler. Ayrıca, Yarn, paketlerin bütünlüğünü korumak için yükleme sırasında checksum bilgilerini doğrular, böylece veri bütünlüğü ve güvenliği sağlanmış olur. Bu özellikler, Yarn'ı güvenlik açısından daha sağlam bir seçenek haline getirir.

Katılımcılarımıza Tavsiyelerimiz
Daha Fazla

NPM ve Yarn Nedir? Hangi Paket Yöneticisini Seçmelisiniz?

NPM ve Yarn nedir? NPM, Node.js paketlerini yönetir. Yarn, daha hızlı ve güvenli bir alternatif sunar. Hangi paket yöneticisini seçeceğinizi öğrenin!

Yazılım geliştirme süreçlerinde paket yöneticileri, projelerin bağımlılıklarını yönetmek, paketleri yüklemek, güncellemek ve kaldırmak için kullanılan araçlardır. İki popüler paket yöneticisi olan NPM ve Yarn, JavaScript ekosisteminde geniş bir kullanım alanına sahiptir. Bu rehberde, NPM ve Yarn nedir, nasıl kullanılır, avantaj ve dezavantajları nelerdir, hangi durumlarda tercih edilmelidir ve performans farklılıkları gibi konulara detaylı bir şekilde değineceğiz.

Paket Yöneticisi Nedir?

Paket yöneticisi, yazılım projelerinde kullanılan kütüphane ve araçları yönetmek için kullanılan bir yazılımdır. Paket yöneticileri, bağımlılıkların kolayca yüklenmesini, güncellenmesini ve kaldırılmasını sağlar. Ayrıca, projelerin tutarlılığını korumak ve farklı ortamlar arasında uyumluluğu sağlamak için önemli bir rol oynar.

NPM Nedir?

NPM (Node Package Manager), Node.js ekosisteminde kullanılan en popüler paket yöneticisidir. NPM, Node.js ile birlikte gelir ve JavaScript projeleri için kütüphane ve modülleri yönetmek için kullanılır. NPM'in temel işlevleri arasında paket yükleme, güncelleme, kaldırma ve bağımlılık yönetimi bulunur.

1. NPM Kurulumu

NPM, Node.js ile birlikte gelir, bu yüzden öncelikle bilgisayarınıza Node.js indirip kurmanız gerekir. Kurulumdan sonra, komut satırında 'npm -v' komutu çalıştırarak NPM'in yüklü olup olmadığını ve versiyonunu kontrol edebilirsiniz.

2. Proje Başlatma (package.json Oluşturma)

Kurulum başarılı bir şekilde tamamlandıysa proje klasörünüzde aşağıdaki komutu çalıştırarak bir 'package.json' dosyası oluşturabilirsiniz.

Yazmış olduğunuz bu komut, size projeniz hakkında birkaç soru soracak ve ardından bir 'package.json' dosyası oluşturacaktır. Hızlı bir başlangıç için 'npm init -y' komutunu kullanabilirsiniz, bu komut varsayılan değerlerle 'package.json' dosyasını oluşturur.

3. NPM ile Paket Yükleme

NPM kullanarak bir paket yüklemek için "npm install <paket-adı>" komutu kullanabilirsiniz.

Bir örnek yapalım ve daha önce yayınladığımız "En İyi JavaScript Kütüphaneleri" yazımızda bahsettiğimiz popüler bir javascript kütüphanesi olan Lodash'i NPM ile kuralım.

Bu komut, 'node_modules' adlı bir klasör oluşturur ve lodash paketini bu klasöre indirir. Ayrıca, 'package.json' dosyasına dependencies (bağımlılıklar) kısmına ekler.

4. Paketleri Global Olarak Yükleme

Bazı paketler, projenizin her yerinde kullanılmak üzere global olarak yüklenebilir. Örneğin, "nodemon" adlı bir paketi global olarak yüklemek için:

Bu komut nodemon'u global olarak sisteminize yükler, böylece herhangi bir dizinde 'nodemon' komutunu kullanabilirsiniz.

5. Paket Güncelleme ve Kaldırma

Yüklü paketleri güncellemek için 'npm update' komutunu kullanabilirsiniz. Belirli bir paketi güncellemek için:

Bir paketi kaldırmak için 'npm uninstall' komutunu kullanabilirsiniz:

6. NPM ile Proje Bağımlılıklarını Yükleme

Paket yöneticisi olarak NPM kullandığınız projede kullandığınız tüm bağımlılıkları yüklemek için şu komutu çalıştırmanız yeterlidir:

Yarn Nedir?

Yarn, JavaScript projelerinde bağımlılıkları yönetmek için kullanılan modern ve hızlı bir paket yöneticisidir. Facebook (Meta) tarafından 2016 yılında geliştirilmiş ve açık kaynaklı olarak sunulmuştur. Yarn, özellikle büyük projelerde bağımlılık yönetimini daha verimli ve güvenilir hale getirmek amacıyla tasarlanmıştır.

1. Yarn Kurulumu

Sistemizde Node.js ve npm kurulu olmalıdır. Eğer kurulu değilse yukarıdaki adımları takip ederek kurulumları tamamlayarak başlamalısınız.

Yarn kurmak için terminal veya komut istemcisine aşağıdaki komutu yazın:

2. Yarn Projesi Oluşturma

Yeni bir yarn projesi oluşturalım.

Oluşturduğumuz projeyi 'yarn init' komutu ile başlatalım.

Bu komut, sizi bazı sorularla yönlendirecek ve sonunda bir 'package.json' dosyası oluşturacaktır.,

3. Yarn ile Paket Yükleme

NPM ile yapmış olduğumuz popüler javascript kütüphanelerinden olan Lodash kurulumunu şimdi Yarn ile yapalım:

Bu komut, lodash paketini indirir ve 'package.json' dosyasına bağımlılık olarak ekler.

4. Yarn ile Paket Kaldırma

Bir paketi kaldırmak için 'yarn remove' komutu kullanılır.

5. Yarn ile Proje Bağımlılıklarını Yükleme

Projede listelenen tüm bağımlılıkları yüklemek için sadece 'yarn install' komutu çalıştırmanız yeterlidir:

NPM mi Yarn mı?

NPM ve Yarn arasındaki tercih, projeye ve kişisel tercihlere bağlı olarak değişebilir. Küçük projeler ve hızlı başlangıçlar için NPM yeterli olabilirken, büyük projelerde ve monorepo yapılarında Yarn’ın sağladığı hız ve özellikler avantaj sağlayabilir. Her iki paket yöneticisi de sürekli gelişmekte olup, kullanıcılara geniş bir yelpazede özellikler sunar.

NPM ve Yarn'ı 3 ana başlıkta inceleyelim, avantaj ve dezavantajlarına bakalım:

Hız ve Performans

NPM, Node paketlerini merkezi bir repodan sıralı olarak indirirken, Yarn eş zamanlı olarak birden fazla paketi indirebilir. Bu, daha hızlı yüklemelere kapı aralar. Yarn ayrıca yarnpkg.com adında bir uzak depoya sahiptir ve yüklenen paketlerin sürümlerini lokal bilgisayarda saklar. Bu sayede aynı sürümdeki paket tekrar indirilmeye çalışıldığında, uzak repoya gitmesine gerek kalmaz ve işlem daha hızlı gerçekleşir. NPM, 5.0 sürümünden itibaren performans iyileştirmeleri yapmış olsa da, Yarn’ın paralel indirme yetenekleri genellikle daha hızlı yüklemeler sağlar.

Tutarlılık

Node modül sisteminde her paketin bir versiyonu bulunur ve semantik versiyonlama usulü tercih edilir. Ancak, belirli bir sürüm aralığında olası tutarsızlıklar yaşanabilir. Ö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. Bu durum, özellikle takım çalışmasında büyük sorunlara yol açabilir. Yarn, bu sorunu çözmek için yarn.lock dosyasını kullanır. Yarn.lock, bağımlılıkların kesin sürümlerini sabitler ve bu sayede projelerin farklı ortamlarda aynı şekilde çalışmasını sağlar. NPM, 5.0 sürümünden itibaren benzer bir kilit dosyası olan package-lock.json'u kullanmaya başlamıştır. Bu dosya, bağımlılıkların kesin sürümlerini belirleyerek tutarlılığı sağlar.

Güvenlik

NPM ve Yarn, güvenlik yaklaşımları açısından farklılık gösterir. NPM, paketlerin yüklenmesi sırasında otomatik olarak kod çalıştırılmasına izin verir, bu da potansiyel güvenlik riskleri oluşturabilir. Örneğin, kötü niyetli bir paket, kurulum sırasında zararlı kod çalıştırabilir. Buna karşılık, Yarn, yalnızca yarn.lock veya package.json dosyalarındaki bilgilerden yükleme yaparak güvenliği artırır. Bu yaklaşım, aynı paketin tüm cihazlarda tutarlı bir şekilde kurulmasını sağlar ve sürüm farklılıklarından kaynaklanan hataları önler. Ayrıca, Yarn, paketlerin bütünlüğünü korumak için yükleme sırasında checksum bilgilerini doğrular, böylece veri bütünlüğü ve güvenliği sağlanmış olur. Bu özellikler, Yarn'ı güvenlik açısından daha sağlam bir seçenek haline getirir.

BOOTCAMP

Partner şirketlerimiz, kendilerine özel Patika bootcamp’lerinden toplu işe alım yapıyor. Bu ücretsiz bootcamp'lere katıl, başarıyla mezun ol, ve hemen işe başla! Şu ana kadar binlerce kişi bootcamp'lerden sonra en iyi şirketlerde işe girdi.

Başvurulara açık programlarımız