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 "[email protected]"
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.