# npm (Node Package Manager)

Adres: https://softwaredictionary.org/tr/terimler/npm
Kategori: Web Geliştirme
Son güncelleme: 2026-10-03

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.json

```json
{
  "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.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
