Node.js NPM Paket Yöneticisi

Yazıda Node.js için geliştirilen kodların paketlenmesi ve paylaşılması için kullanılan NPM ile ilgili bilgiler yer almaktadır.

NPM nedir?

Node.js içerisinde yer alan çekirdek modüller geliştirilen uygulama için yetersiz kalabilir.

Bu durumda çeşitli geliştiriciler tarafından yazılmış üçüncü parti modüllerin kullanımı uygulamanın daha hızlı bir şekilde tamamlanmasını sağlar.

NPM paket yöneticisi yazılan Node.js modüllerinin paketlenmesini, güncellenmesi ve diğer geliştiricilerin kullanabilmesi için indirilmesini sağlar.

NPM kurulumu

NPM Paket Yöneticisi Node.js kurulumu ile birlikte yüklenir.

NPM sürüm kontrolü için

npm -v

veya

npm --version

komutları kullanılır.

package.json dosyası

Geliştirilen uygulama veya modül ile ilgili bilgiler package.json dosyasında bulunur.

Dosya içerisinde;

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

gibi bilgiler yer alır.

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 ve uygulanmanın taşınabilir olması için gereklidir.

Modül ile ilgili bilgilerin 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.

Varsayılan değerler ile hızlıca oluşturmak için

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

komutlarından birisi kullanılabilir.

Varsayılan ayarlar

Uygulama geliştirirken package.json dosyasında kullanmak için varsayılan değerleri belirleyerek sürekli benzer değerlerin yazılmasına gerek kalmadan hızlıca oluşturulması sağlanır.

Varsayılan ayarları listelemek için aşağıdaki komut kullanılır.

npm config list -l

Komut NPM içinde kullanılan varsayılan değerleri ekran yazdırır.

Ancak bu ayarlardan sadece package.json tarafından kullanılan ayarların değiştirilmesi daha sağlıklı olacaktır.

Bir ayarı değiştirmek için

npm config set <ayar> <deger>

veya

npm set <ayar> <deger>

komutları kullanılır.

Bir ayarın değerini almak için

npm config get <ayar>

veya

npm get <ayar>

komutları kullanılır.

Değiştirilen bir ayarın değerini silmek için

npm config delete <ayar>

komutu kullanılır.

NPM package.json dosyasını oluştururken varsayılan olarak init-author-name, init-author-email, init-author-url, init-version, init-license ayarlarını kullanır.

Bu ayarları değiştirmek için

npm config set init-author-name "Yusuf SEZER"

veya

npm set init-author-email "yusufsezer@mail.com"
npm set init-license "MIT"

komutlarıyla varsayılan değerler girildikten sonra

npm init --yes

komutu yazılarak hızlıca package.json dosyası oluşturulabilir.

NPM paketleri

Çeşitli geliştiriciler tarafından hazırlanmış modüllere www.npmjs.com adresinden 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

npm search <modul_adi>

komutu yazarakta ihtiyacınıza uygun modülü bulabilirsiniz.

NPM paket yükleme

Geliştirdiğiniz uygulama için ihtiyacınıza göre paket bulduktan sonra paketi

npm install <modul_adi>

komutu ile indirebilirsiniz.

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');

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

Geliştirilen uygulama daha sonra farklı bir bilgisayara/sunucuya yüklenmesi gerekiyorsa package.json dosyasına modülün uygulamanın çalışmasında gerekli olduğunu bildirmek için

npm install <modul_adi> --save

komutu kullanılır.

Komut çalıştırıldıktan sonra modül indirilecek ve package.json dosyasına 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 mocha, grunt, gulp, babel 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

npm install <modul_adi> --save-dev

komutu kullanılır.

NPM 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 çalıştırılır.

Bir paketin global olarak indirmek için

npm install <modul_adi> -g

komutu kullanılır.

Node.js ile uygulama geliştirirken sıklıkla Node.js yorumlayıcısın kapatılıp tekrar başlatılması gerekir.

Ancak bu işlem bir süre sonra zahmetli hale gelebilir.

Bu işleme çözüm olarak nodemon isimli modülü global olarak indirilebilir.

npm install nodemon -g

Modül bir Node.js dosyasını

nodemon index.js

komutu ile çalıştırdıktan sonra dosyadaki değişiklikleri izler ve her değişiklik sonrasında yeniden çalışır.

NPM paketleri listeleme

Geliştirilen uygulama için yüklenen modülleri listelemek için

npm list

komutu kullanılır.

Komut uygulama içerisinde indirilen modülleri listeleyecektir.

NPM ile indirilmiş global modülleri listemek için

npm list -g

veya

npm la

veya

npm ll

komutları kullanılır.

Komut indirilen global modülleri ve global modüllerin kullandığı modülleri listeleyecektir.

Sadece global modülleri listelemek için

npm list -g -depth=0

veya

npm ll -g -depth=0

komutları kullanılır.

NPM paket güncelleme

İndirilen paketleri güncellemek için

npm update <modul_adi>

veya

npm upgrade <modul_adi>

komutu kullanılır.

Uygulama için package.json dosyası oluşturulmuşsa dosya içerisindeki modül bilginisin de güncellenmesi için

npm update <modul_adi> --save

veya

npm upgrade <modul_adi> --save

komutları kullanılır.

NPM ile global klasörüne indirilen modülü güncellemek için

npm update <modul_adi> -g

veya

npm upgrade <modul_adi> -g

komutları kullanılır.

NPM paket kaldırma

İndirilen paketleri kaldırmak için

npm uninstall <modul_adi>

veya

npm remove <modul_adi>

komutları kullanılır.

Uygulama için package.json dosyası oluşturulmuşsa dosya içerisindeki modül bilginisin de kaldırılması için

npm uninstall <modul_adi> --save

veya

npm remove <modul_adi> --save

komutları kullanılır.

NPM ile global klasörüne indirilen modülü kaldırmak için

npm uninstall <modul_adi> -g

veya

npm remove <modul_adi> -g

komutları kullanılır.

NPM gereksiz paketleri kaldırma

İndirilen ancak package.json dosyasında yer almayan paketleri kaldırmak için

npm prune

komutu kullanılır.

Tüm paketleri indirmek

Geliştirilen uygulama başka bir bilgisayara package.json dosyası ile birlikte taşındıktan sonra sadece

npm install

komutu ile package.json dosyasında yer alan gerekli modüller indirilecektir.

Uygulamayı başlatmak

Geliştirilen uygulama için gerekli package.json dosyasındaki scripts bölümü eklenmişse

npm run

komutu ile uygulama otomatik çalıştırılır.

Diğer komutlar

NPM içerisinde yer alan diğer komutlar için

npm help

veya

npm help -l

komutlarını kullanabilir.

Bir komut hakkında detaylı bilgi almak için

npm help <komut_adi>

komutunu kullanabilirsiniz.

Node.js Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!