Ana içeriğe geç

npm

Node Package Manager

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/npm

Kısaca

npm, Node.js'in varsayılan paket yöneticisi ve dünyanın en büyük yazılım deposudur; bir projenin bağımlılıklarını indirir ve sürümlerini takip eder.

npm nedir?

npm, 2010'da Isaac Z. Schlueter tarafından geliştirildi ve her Node.js kurulumuyla birlikte gelir. İki parçası vardır: paketleri kuran ve yöneten bir komut satırı aracı ve herkesin yayımlayabildiği milyonlarca açık kaynaklı JavaScript paketinin bulunduğu çevrimiçi bir depo olan npm registry. 2020'den bu yana GitHub'a aittir.

Bir proje bağımlılıklarını test ve build gibi betiklerle birlikte bir package.json dosyasında listeler. npm install paketleri ve onların bağımlı olduğu paketleri bir node_modules klasörüne indirir ve tam sürümleri package-lock.json dosyasına kaydeder; böylece her geliştirici ve sunucu aynı seti alır. Sürümler anlamsal sürümlemeyi (semantic versioning) izler; ^4.2.0 gibi aralıklar da uyumlu güncellemelere izin verir.

npm run, package.json'daki betikleri çalıştırır; npx de bir paketin komutunu, örneğin yeni bir proje oluşturmak için, onu global olarak kurmadan çalıştırır. pnpm, Yarn ve Bun gibi alternatifler aynı depoyu ve package.json'u kullanır; ama paketleri farklı biçimde, çoğu zaman daha hızlı ya da daha az disk alanıyla kurar.

Sık yapılan bir yanlış, npm'in yalnızca sunuculardaki Node.js için olduğu düşüncesidir. React, Vite ve TypeScript gibi ön yüz araçlarının ve kütüphanelerinin çoğu da onunla kurulur. Bir paketi kurmak onun kurulum betiklerini çalıştırabildiği ve birçok dolaylı bağımlılığı beraberinde getirdiği için depo, tedarik zinciri saldırılarının (supply chain attack) da hedefi olmuştur; bu yüzden kilit dosyaları ve denetimler önemlidir.

Önemli noktalar

  • npm, Node.js'in paket yöneticisi ve en büyük JavaScript paket deposudur.
  • package.json bağımlılıkları ve betikleri listeler; package-lock.json tam sürümleri sabitler.
  • npm install node_modules'u doldurur; npm run betikleri çalıştırır; npx paket komutlarını çalıştırır.
  • pnpm, Yarn ve Bun aynı depoyu kullanan alternatiflerdir.
  • Kilit dosyaları ve denetimler tedarik zinciri saldırılarına karşı korunmaya yardım eder.

Örnek

Betikleri ve bağımlılıkları olan bir package.jsonjson
{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite",
    "test": "vitest"
  },
  "dependencies": {
    "react": "^19.0.0"
  },
  "devDependencies": {
    "vite": "^7.0.0",
    "vitest": "^3.0.0"
  }
}

Sık sorulan sorular

npm ile npx arasındaki fark nedir?

npm paketleri kurar ve yönetir. npx ise bir paketin komutunu çalıştırır, kurulu değilse onu geçici olarak indirir; bu da proje oluşturucular gibi tek seferlik araçlar için kullanışlıdır.

package-lock.json nedir?

npm'in yazdığı, dolaylı olanlar dahil kurulan her paketin tam sürümünü kaydeden bir dosyadır; böylece başka makinelerdeki kurulumlar aynı sonucu verir. Sürüm kontrolüne eklenmelidir.

npm, Yarn ve pnpm arasındaki fark nedir?

Üçü de package.json'u kullanarak aynı depodan paket kurar. Yarn ve pnpm daha hızlı ya da daha verimli olmak için geliştirildi; örneğin pnpm her paket sürümünü diskte bir kez saklar ve projelere bağlantıyla ekler.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar