JavaScript

Node.js NPM (Node Package Manager) Node Paket Yöneticisi

node package manager

NPM (Node Paket Yönetimi) nedir?

Node.js içerisinde yer alan çekirdek (entegre) modüller geliştirilen uygulama için yetersiz kaldığında diğer geliştiriciler tarafından yazılmış üçüncü parti modüllerin kullanımı uygulamada bize büyük kolaylıklar sağlar. Node paket yöneticisi (NPM), yazılan üçüncü parti modüllerin paketlenmesini, güncellenmesini ve diğer geliştiricilerin kullanabilmesi için indirilebilmesini sağlar. Node.js modülleri üçe ayrılır:

  1. Çekirdek (entegre) modüller
  2. Yerel modüller
  3. Üçüncü parti modüller

Çekirdek (entegre) modüller

Node.js kurulumuyla birlikte gelen modüller çekirdek (entegre) modül olarak adlandırılır. Çekirdek modüller herhangi bir indirme yapılmadan sadece projeye require syntaxı ile dahil edilerek kullanılır. Aşağıdaki tabloda bazı çekirdek modüller listelenmiştir.

ModülAçıklaması
fsDosya işlemleri için kullanılır.
pathDosya işlemlerinde kullanmak için yardımcı fonksiyonları içerir.
httpHTTP sunucu işlemleri için kullanılır.
urlURL işlemleri için kullanılır.
querystringURL istekleri için kullanılır.
utilÇeşitli yardımcı fonksiyonları içerir.

Daha fazla çekirdek (entegre) modüller hakkında bilgi alabilmek için https://nodejs.org/api/ linkini kullanabilirsiniz.

NPM kurulumu

NPM Paket Yöneticisi Node.js kurulumu ile birlikte yüklenir. NPM sürümünü kontrol etmek ve yüklü olduğuna emin olmak için aşağıdaki komutlardan birini kullanabilirsiniz.

npm -v
npm --version

Package.json dosyası

Geliştirilen uygulama veya modül ile ilgili bilgiler package.json dosyası içerisinde bulunur. Package.json dosyasının içerisinde aşağıdaki gibi bilgiler var.

  • name – paketin adı,
  • version – paketin sürümü,
  • description – paketin açıklaması,
  • homepage – paketin web adresi,
  • author – paketin yazarı,
  • contributors – pakete katkıda bulunanlar,
  • dependencies – paketin içerisinde kullanılan üçüncü parti modüller,
  • repository – paketin bulunduğu depo adresi (github),
  • main – paketin ana dosyası (index.js, app.js),
  • scripts – paketin kurulumunda yapılacak işlemler,
    • build
    • test
    • update
    • start
  • keywords – pakete ait anahtar kelimeler,
  • license – paketin lisansı (MIT, ISC vb.)

Package.json oluşturmak

Node.js ile uygulama geliştirirken uygulama hakkında bilgi içeren package.json dosyasının oluşturulması iyi bir geliştirme yapabilmek ve uygulamanın her ortama taşınabilir olması için önemlidir.

Modül ile ilgili bilgilerin ve modülde kullanılan third party dependancy librarylerin yer aldığı package.json dosyasını oluşturmak için aşağıdaki komut kullanılır.

npm init

Komut çalıştırıldıktan sonra modül ile ilgili önceki bölümde belirtilen modülü tanımlayacak bilgilerin adım adım girilmesi istenecektir.

Bilgileri varsayılan değerler (ayarlar) ile hızlıca oluşturmak için aşağıdaki komutlardan birini kullanabilirsiniz.

npm init -y
npm init --yes
npm init -f
npm init --force

NPM’de varsayılan ayarlar (değerler)

NPM’de varsayılan tüm ayarları listelemek için aşağıdaki komut kullanılır.

npm config list -l

Bu listelenen ayarlardan sadece package.json tarafından kullanılan ayarların değiştirilmesi NPM yapısını bozmamak adına dikkat gerektirir.

Bir ayarı değiştirmek için aşağıdaki komutlar kullanılır.

npm config set <ayar> <deger>
npm set <ayar> <deger>

Bir ayarın değerini almak için ise aşağıdaki komutlar kullanılır.

npm config get <ayar> 
npm get <ayar>

Değiştirilen bir ayarın değerini silmek için de aşağıdaki komut kullanılır.

npm config delete <ayar>

NPM’de varsayılan değerlerle package.json dosyasını oluşturmak istediğinizde init-author-name, init-author-email, init-author-url, init-version, init-license ayarları kullanır.

Bu ayarları değiştirmek için aşağıdaki gibi npm komutlarını kullanabilirsiniz.

npm set init-license "ISC"
npm config set init-author-name "Aytaç AĞMA"
npm set init-author-email "aytacagma@aytacagma.com"

Bu komutlarlar varsayılan değerleri değiştirdikten sonra aşağıdaki varsayılan değerler ile package.json oluştur komutunu kullandığınızda yeni değerleriniz ile hızlıca otomatik package.json dosyanız oluşmuş olur.

npm init --y

NPM paketleri

Bir çok yazılım geliştirici tarafından hazırlanmış modüllere www.npmjs.com adresinden ulaşabilir, ihtiyacınıza göre olan modülü bulabilir ve modül hakkında bilgi alabilirsiniz.

Ayrıca işletim sistemi komut yorumlayıcısına ya da terminale aşağıdaki komutu yazarak da ihtiyacınıza uygun modülü bulabilirsiniz.

npm search <modul_adi>

NPM’den paket yükleme

Geliştireceğiniz uygulama için ihtiyacınız olan paketi bulduktan sonra ilgili paketi aşağıdaki komut ile yükleyebilirsiniz.

npm install <modul_adi>

Komutu projede ilk defa çalıştırıyorsanız, NPM, uygulama klasörü içerisinde node_modules klasörünü oluşturacak ve modül için gerekli olan dosyaları indirecektir.

İndirilen modüller Node.js çekirdek modüllerinde olduğu gibi require fonksiyonu ile projeye dahil edilir.

const modul = require('modul_adi');

İndirilen paketin kullanımı sadece indirilen bilgisayar ve uygulama için geçerli olacaktır.

Geliştirilen uygulamanın daha sonra farklı bir bilgisayara/sunucuya yüklenmesi gerekiyorsa package.json dosyasına bu üçüncü parti modülün yazdığımız/yazacağımız uygulamanın çalışmasında gerekli olduğunu bildirmek için aşağıdaki komut kullanılır.

npm install <modul_adi> --save

Komut çalıştırıldıktan sonra modül indirilecek ve package.json dosyasında dependencies alanına eklenecektir.

Node.js ile uygulama geliştirirken kullanılan çeşitli geliştirme araçları devDependencies alanına eklenir. Bu alan genellikle modülün geliştirilmesi sırasında kullanılan nodemon, babel, grunt, mocha, jasmine, gulp vb. test ve toplu işlem modüllerinin kullanıldığını ifade eder. Geliştirilen uygulamada kullanılacak geliştirme modüllerini package.json dosyasına eklemek için aşağıdaki gibi –save değil –save-dev kullanılır.

npm install <modul_adi> --save-dev

NodeJS NPM modüllerini projede kullanmak

Node.js içerisinde bulunan çekirdek, yerel ve üçüncü parti modülleri kullanmak için require fonksiyonu ile projeye dahil edilmesi gerekir.

const modul = require('modülün_adı');

NPM’de global paket yükleme

Node.js ile uygulama geliştirirken bazı modüller sıklıkla kullanılır. Bu modüllerin her zaman indirilmesi yerine global klasörüne indirilerek her uygulamada kullanılması sağlanır. Node.js ayrıca grunt, gulp, cordova, nodemon gibi komut satırında çalışan modüllere de sahiptir. Bu modüller global klasöre indirilerek işletim sistemindeki komut yorumlayıcısında ya da kod geliştirilen framework terminalinde çalıştırılır.

Bir paketi global olarak indirmek için aşağıdaki komut kullanılır.

npm install <modul_adi> -g

Node.js ile uygulama geliştirirken sıklıkla Node.js yorumlayıcısını kapatılıp tekrar başlatmak gerekir. Bu işlem her kod değişikliğinde uygulanması gerektiği geliştiriciyi yorar. Bu işleme çözüm olarak nodemon isimli modülü global olarak indirmenizi tavsiye ederim. Aşağıdaki komut ile nodemon modülünü indirebilirsiniz.

npm install nodemon -g

Aşağıdaki komut ile nodemonu çalıştırabilirsiniz. Nodemon modülü, komutta belirttiğimiz Node.js dosyasındaki değişiklikleri izler ve her yaptığınız değişiklik sonrasında otomatik olarak dosyayı yeniden çalıştırır. Aşağıdaki komut, dosyadaki kodların değişiminde node dosya_adı.js komutunun otomatik çalıştırılması gibi bir etki yaratır.

nodemon dosya_adı.js

Projeyi farklı bir yere taşıyınca projede kullanılan TÜM paketleri indirmek

Geliştirilen uygulama başka bir bilgisayara package.json dosyası ile birlikte taşındıktan sonra aşağıdaki komut ile package.json dosyasında yer alan dependencies alanındaki tüm modüller indirilir.

npm install

Node Package Manager ile projedeki yüklü paketleri listeleme

Geliştirilen uygulama için yüklenen modülleri listelemek için aşağıdaki komut kullanılır. Komut uygulama içerisinde indirilen modülleri listeleyecektir.

npm list

NPM ile indirilmiş global modülleri ve global modüllerin kullandığı modülleri listemek için aşağıdaki komutlardan biri kullanılabilir.

npm list -g
npm la
npm ll

Sadece global modülleri listelemek için aşağıdaki komutlardan biri kullanılabilir

npm list -g -depth=0
npm ll -g -depth=0

NPM’deki yüklü paketi güncelleme

İndirilen paketleri güncellemek için aşağıdaki komutlardan biri kullanılır.

npm update <modul_adi>
npm upgrade <modul_adi>

Uygulama için package.json dosyası oluşturulmuşsa dosya içerisindeki modül bilginisin de güncellenmesi için aşağıdaki komutlardan biri kullanılır.

npm update <modul_adi> --save
npm upgrade <modul_adi> --save

NPM ile global klasörüne indirilen modülü güncellemek için aşağıdaki komutlardan biri kullanılır.

npm update <modul_adi> -g
npm upgrade <modul_adi> -g

NPM’de yüklü paketi kaldırma

İndirilen paketleri kaldırmak için aşağıdaki komutlardan biri kullanılır.

npm uninstall <modul_adi>
npm remove <modul_adi>

Uygulama için package.json dosyası oluşturulmuşsa dosya içerisindeki modül bilginisin de kaldırılması için aşağıdaki komutlardan biri kullanılır.

npm uninstall <modul_adi> --save
npm remove <modul_adi> --save

NPM ile global klasörüne indirilen modülü kaldırmak için aşağıdaki komutlardan biri kullanılır.

npm uninstall <modul_adi> -g
npm remove <modul_adi> -g

NPM’de yüklü, kullanılmayan gereksiz paketleri kaldırma

İndirilen ancak package.json dosyasında yer almayan paketleri kaldırmak için aşağıdaki komut kullanılır.

npm prune

Uygulamayı başlatmak

Geliştirilen uygulama için package.json dosyasına scripts bölümü eklenmişse aşağıdaki komut ile uygulama çalıştırılabilir.

npm run

NPM yardım ve bilgi komutları

NPM içerisinde yer alan diğer komutları görmek için aşağıdaki komutlardan birini terminale yazabilirsiniz.

npm help
npm help -l

Belli bir komut hakkında detaylı bilgi almak için ise aşağıdaki komutu kullanabilirsiniz.

npm help <komut_adi>

Umarım faydalı bir yazı olmuştur. Herkese iyi çalışmalar.

B. Aytaç AĞMA
Comp. Eng.

You can share and save this page with:
Tags: , , , , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*