Package dosyaları ve Npm cache nasıl kullanılır ?

Fatih TÜZEN
4 min readNov 25, 2019

--

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
package after installing

burada kullanılan npm i kodu npm install kısaltmasıdır.

Komut sonrası klasör görünümü

package and node_modules files example

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
npm-cache install for mac os

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.

package.json dosyamıza vuex 3.0.1 sürümünü ekledik
npm-cache install komutu ile vuex paketini yükledik

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.

npm-cache install komutu ile tüm paketleri yükledik

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 clean vue komutu ile vue paketini cache’den temizledik

Npm cache konusu ile ilgili detaylı anlatım kaynağına şuradan ulaşabilirsiniz.

--

--