Package dosyaları ve Npm cache nasıl kullanılır ?
Merhabalar bugün npm cache nasıl kurulur ve package.json ile package.lock dosyaları ne işe yarar konularını ele alacağız.
Anlatıma başmadan önce npm ile ilgili kurulum ve bilgi için ilk olarak şuradan bilgi edinebilirsiniz.
Package dosyaları
Npm ile paket yönetimi için kullanılan 2 adet dosya vardır package.json ve package-lock.json bunlardan package.json olan dosya kullanıcak olan kütüphanelerin ve scriptlerin yönetimini sağlar.
Örneğin aşağıda görüldüğü üzere klasörde sadece package.json dosyası bulunmaktadır.
ve dosya içeriğide yine aşağıda görülmektedir
burada örnek olarak vue paketinin 2.5.17 sürümünü ekledik.
Daha sonra komut penceresinden ilgili klasörün içinde iken şu komutların yazalım.
npm i
burada kullanılan npm i
kodu npm install
kısaltmasıdır.
Komut sonrası klasör görünümü
Bu komutlardan sonra package-lock dosyası ve node_modules klasörü oluşmaktadır. Bu dosyalar daha önceden var ise sadece içeriğinde güncelleme yapılır. Örnek package dosyasında paket adı silinir ise node_modules klasöründen ilgili paket silinir veya eklenirse indirilen paketler buraya eklenir.
package-lock.json dosyası ise ilk oluşturulurken şöyle bir uyarı çıkıyor.
created a lockfile as package-lock.json. You should commit this file.
(lockfile dosyası package-lock.json olarak oluşturuldu. Bu dosyayı paket ile birlikte kullanmalısınız.)
Bu dosya aslında package içinde yüklemek istediğimiz tüm paketleri şifreli bir şekilde saklıyor ve her npm install komutu yazıldığında eğer paket burada yazmıyor ise paketi yeniden indiriyor.
Örneğin bir projeniz var ve bu projeyi başka bir kullanıcıda sizin gibi geliştiriyor diyelim bu aşamada sizin eklediğiniz tüm paketleri diğer geliştiricide yüklemesi gerekiyor. Tüm paketler güncel bir şekilde yüklü iken yeni bir paket eklenmesi durumunda npm install dediğiniz zaman yeni paketler var olduğunu lock dosyası algılıyor eğer lock dosyasında paket ile ilgili herhangi bir bilgi yok ise yeniden paketi indirip kurar.
Fakat bu işlem node_modules klasörüyle ilişkili olarak çalışır eğer indirilen paketlerden silinen bir paket var ise (node_modules klasöründen yani) lock dosyasının içinde bilgisi olsa bile paketin dosyalarını bulamadığı için yeniden indirir.
Sürekli olarak package.json dosyasını ilk defa kullanan bir sistemde, tüm paketleri yeniden indirmek zaman konusunda bize fazlasıyla maliyetlidir. Bunun için ise indirilen aynı sürüm tüm paketleri kullanılan bilgisayarda cache mekanizması ile barındırmak da mümkün.
İşte tamda burada npm cache devreye giriyor. Npm cache daha önce eğer npm aracılığı ile herhangi bir paketi indirdiysek hafızada tutarak tekrar aynı dosyayı indirmek istediğimizde cache dosyalarından saniyeler içinde node_modules klasörümüze ekliyor.
Npm cache nasıl kurulur
npm install -g npm-cache
yukarıda görüldüğü gibi npm-cache 0.7.0 sürümü ile kurulum başarıyla gerçekleştirildi.
Kullanımı
npm-cache install
Komut satırına artık npm-cache install diyerek paketleri yükleyebilirsiniz.
Örnek olarak package dosyamızı güncelleyerek vuex paketini varolan dosyalarımıza npm-cache ile yüklüyoruz.
Yine örnek olarak tüm paketleri node_modules klasöründen silerek npm-cache install ile yeniden yükledik ve süreden anlaşılacağı gibi dosyaları indirmeden cache klasöründen hızlı bir şekilde ekledik.
Not: Ayrıca cache’den silmek istediğimiz bir paketi ise npm-cache clean “paket adı” şeklinde yazarakda kullanabiliriz.
npm-cache clean vue
Npm cache konusu ile ilgili detaylı anlatım kaynağına şuradan ulaşabilirsiniz.