27 Kasım 2016 Pazar

NPM Nedir

Merhaba Webkolog Takipçileri!

Modern JavaScript geliştirmenin vazgeçilmez bir parçası olan Node Package Manager (NPM) ile tanışmaya hazır mısınız? Eğer JavaScript ekosisteminde yeniyseniz veya proje bağımlılıklarını yönetme konusunda kafa karışıklığı yaşıyorsanız, doğru yerdesiniz. NPM, binlerce kullanışlı kütüphane ve aracı kolayca projenize dahil etmenizi, güncellemeleri yönetmenizi ve projelerinizi düzenli tutmanızı sağlayan bir süper kahraman gibidir. Node.js'in kalbinde yer alan bu güçlü araç, geliştirme sürecinizi inanılmaz derecede hızlandırır ve basitleştirir. Hadi gelin, NPM'in ne olduğunu, ne işe yaradığını ve projelerinizde nasıl kullanacağınızı adım adım keşfedelim!


NPM Nedir?

NPM, açılımı Node Package Manager olan, Node.js ekosistemi için geliştirilmiş bir paket yöneticisidir. Isaac Z. Schlueter tarafından tamamen JavaScript dili kullanılarak geliştirilmiştir. Temel olarak, NPM'i bir tür uygulama mağazası gibi düşünebilirsiniz; Google Play Store'dan veya Apple App Store'dan telefonunuza uygulama yükler gibi, NPM üzerinden projenize JavaScript modülleri, kütüphaneleri ve araçları yükleyebilirsiniz.

NPM, komut satırı üzerinden (terminal veya komut istemcisi) çalışan bir uygulamadır ve JavaScript projelerinin bağımlılıklarını yönetmek için dünya çapında en çok kullanılan araçtır.

NPM ile Neler Yapabiliriz?
  • Projemize dışarıdan paketleri (kütüphaneleri, modülleri) yükleyebiliriz.
  • Yüklü paketleri silebiliriz.
  • Sistemimizde veya projemizde yüklü olan paketleri listeleyebiliriz.
  • Yüklü paketleri en güncel sürümlerine güncelleyebiliriz (update).
  • Proje bilgilerimizi ve bağımlılıklarımızı içeren package.json dosyasını yönetebiliriz.

NPM Kurulumu ve Kontrolü

NPM, Node.js'in bir parçası olarak gelir. Yani, bilgisayarınıza Node.js'i kurduğunuzda, NPM de otomatik olarak yüklenmiş olur. Node.js'i resmi web sitesinden indirip kurabilirsiniz.

Kurulum Kontrolü:

Node.js ve NPM'in başarılı bir şekilde yüklendiğinden emin olmak için terminalinizi açıp aşağıdaki komutları çalıştırabilirsiniz:


node -v
# Örnek çıktı: v18.16.0 (veya sizin kurduğunuz sürüm)

npm -v
# Örnek çıktı: 9.5.1 (veya sizin kurduğunuz sürüm)

Eğer bu komutlar bir sürüm numarası döndürüyorsa, Node.js ve NPM başarılı bir şekilde yüklenmiş demektir.


package.json Dosyası: Projenizin Kimlik Kartı

Her JavaScript projesinin (özellikle NPM ile yönetilenlerin) kalbinde bir package.json dosyası bulunur. Bu dosya, projeniz hakkında metadata (meta veri) ve bağımlılık bilgileri içeren bir JSON dosyasıdır. NPM, paketleri kurarken, güncellerken veya kaldırırken bu dosyayı kullanır.

package.json Oluşturma:

Projenizin kök dizininde (ana klasöründe) package.json dosyasını oluşturmak için şu komutu kullanabilirsiniz:


npm init

Bu komut, size proje adı, versiyonu, açıklaması, giriş dosyası (main), test komutları gibi bir dizi soru soracaktır. Soruları tek tek yanıtlayabilir veya varsayılan değerleri kabul etmek için Enter tuşuna basabilirsiniz. Daha sonra dosyayı açıp manuel olarak düzenleyebilirsiniz.

Tüm soruları otomatik olarak varsayılan değerlerle geçmek ve hızlıca bir package.json oluşturmak isterseniz:


npm init -y

Bu komutun sonunda, projenizin kök dizininde aşağıdaki gibi bir package.json dosyası oluşacaktır:


{
  "name": "proje-adi",
  "version": "1.0.0",
  "description": "Bu benim harika JavaScript projem.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": ["javascript", "webkolog", "deneme"],
  "author": "Sizin Adınız",
  "license": "ISC"
}
  • name: Projenizin adı.
  • version: Projenizin versiyon numarası.
  • description: Projenizin kısa açıklaması.
  • main: Projenizin ana giriş noktası olan dosya (genellikle Node.js projelerinde kullanılır).
  • scripts: Paketinizin ömrü boyunca çeşitli zamanlarda çalıştırılan özel komut dosyalarını içeren bir nesnedir (örn. projeyi başlatma, test çalıştırma).
  • keywords: Projenizi tanımlayan anahtar kelimeler dizisi.
  • author: Projeyi yazan kişinin adı.
  • license: Projenizin lisans türü.
  • dependencies: Projenizin bağımlılıklarını (çalışması için ihtiyaç duyduğu paketleri) listeler.
  • devDependencies: Sadece geliştirme sırasında ihtiyaç duyulan paketleri listeler (örn. test kütüphaneleri, kod derleyiciler).

NPM Paket Kurulumu: Local ve Global

NPM ile paketleri kurmanın iki temel yolu vardır: **Yerel (Local)** ve **Global**.

1. Yerel (Local) Paket Kurulumu:

Bir paketi yerel olarak kurduğunuzda, bu paket sadece **belirli bir projenin** node_modules klasörü içine yüklenir ve yalnızca o proje içinde kullanılabilir. Bu, bağımlılık yönetiminin en yaygın ve önerilen yoludur, çünkü her projenin kendi bağımlılık setine sahip olmasını sağlar ve farklı projeler arasında versiyon çakışmalarını önler.


npm install [paket-adi]
# veya kısaca
npm i [paket-adi]

# Örnek: Popüler bir HTTP istemcisi olan 'axios'u kurma
npm install axios

Bu komutu çalıştırdığınızda:

  1. Paket, projenizin kök dizininde oluşturulan node_modules klasörüne indirilir.
  2. package.json dosyanızdaki dependencies bölümüne paket adı ve sürüm bilgisi eklenir (varsayılan olarak).
  3. Projenize package-lock.json adında bir dosya oluşturulur veya güncellenir. Bu dosya, tüm bağımlılık ağacının tam olarak hangi sürümlerinin yüklendiğini kesin olarak belirtir ve projenizin farklı ortamlarda (farklı geliştiricilerin bilgisayarları, sunucular) aynı bağımlılık sürümleriyle çalışmasını garanti eder.

Eğer bir paketi sadece geliştirme ortamında kullanacaksanız (örn. bir test kütüphanesi veya kod derleyici gibi), --save-dev veya kısaca -D bayrağını kullanmalısınız:


npm install jest --save-dev
# veya
npm i jest -D

Bu komut paketi devDependencies bölümüne ekler.

Mevcut bir projede tüm bağımlılıkları (hem dependencies hem de devDependencies) kurmak için:


npm install
# veya
npm i
2. Global Paket Kurulumu:

Bir paketi global olarak kurduğunuzda, bu paket sisteminizdeki **tüm projelere** veya komut satırından doğrudan erişilebilir hale gelir. Genellikle komut satırı araçları (CLI araçları) global olarak kurulur, örneğin React projeleri oluşturmak için create-react-app veya bir statik dosya sunucusu olan http-server gibi.


npm install -g [paket-adi]
# veya kısaca
npm i -g [paket-adi]

# Örnek: Global bir HTTP sunucusu kurma
npm install -g http-server

Global olarak kurulan paketler, package.json dosyanıza eklenmez. Bu paketlere sisteminizin herhangi bir yerinden doğrudan terminal üzerinden erişebilirsiniz.


Diğer Faydalı NPM Komutları

  • Paket Silme:
    
    npm uninstall [paket-adi]
    # veya kısaca
    npm un [paket-adi]
            

    Bu komut paketi node_modules'tan siler ve package.json'dan kaydını kaldırır.

  • Yüklü Paketleri Listeleme:
    
    npm list       # Projenin bağımlılık ağacını gösterir
    npm list -g    # Global yüklü paketleri gösterir
            
  • Paketleri Güncelleme:
    
    npm update [paket-adi] # Belirli bir paketi günceller
    npm update             # package.json'daki tüm paketleri günceller (semver kurallarına göre)
            
  • Bir Paketin Bilgisini Alma:
    
    npm view [paket-adi]
            

Sonuç

NPM, modern JavaScript geliştirmenin bel kemiğidir. Paketleri yönetmek, proje bağımlılıklarını düzenli tutmak ve geliştirme sürecini hızlandırmak için bize inanılmaz bir güç verir. İster küçük bir script yazın, ister büyük bir web uygulaması geliştirin, NPM size ihtiyacınız olan araçları ve kütüphaneleri parmaklarınızın ucuna getirir. Yerel ve global kurulum arasındaki farkı anlamak, package.json dosyasının önemini kavramak ve temel komutları bilmek, web geliştirme yolculuğunuzda sizi çok ileriye taşıyacaktır.

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı proje bağımlılıkları dilerim!

0 yorum:

Yorum Gönder