NPM'de paketleri aradığımda, paket boyutlarını görmek istiyorum (KB veya MB, vb.). NPM bu bilgiyi göstermiyor gibi görünüyor.
Bir NPM paketinin projeme ne kadar bloat katacağını nasıl belirleyebilirim?
NPM'de paketleri aradığımda, paket boyutlarını görmek istiyorum (KB veya MB, vb.). NPM bu bilgiyi göstermiyor gibi görünüyor.
Bir NPM paketinin projeme ne kadar bloat katacağını nasıl belirleyebilirim?
Yanıtlar:
Muhtemelen ölçmek istediğiniz şey, bir paketin, onu uygulama paketinize eklemeniz durumunda sahip olduğu etkidir. Diğer yanıtların çoğu, yalnızca kaynak dosyaların boyutunu tahmin edecektir; bu, satır içi yorumlar, uzun değişken adları vb. Nedeniyle yanlış olabilir.
Size pakete girdikten sonra paketin min + gzipli boyutunu söyleyecek küçük bir yardımcı program var -
https://cost-of-modules.herokuapp.com
şimdi https://bundlephobia.com
çok kullanışlı bir araç btw'ye yönlendiriyor .
Bu modül maliyeti projesine bir göz atın . Bir paketin boyutunu ve çocuk sayısını listeleyen bir npm paketidir.
Kurulum:
npm install -g cost-of-modules
Kullanım: cost-of-modules
Çalıştığınız dizinde çalıştırın .
Bağımlılık ağacındaki tüm tarball'ları da içeren belirli bir npm paketi için tarball boyutunu inceleyen npm indirme boyutu adlı bir araç oluşturdum . Bu size bağımlılığı önceden eklemenin maliyeti (yükleme süresi, disk alanı, çalışma zamanı kaynakları, güvenlik denetimi, ...) hakkında bir fikir verir.
Yukarıdaki resimde, Tarball boyutu paketin tar.gz dosyasıdır ve Toplam boyut tüm tarball'ların boyutudur . Araç oldukça basit, ancak söylediği şeyi yapıyor.
Bir cli aracı da mevcuttur. Bunu şu şekilde kurabilirsiniz:
npm i -g download-size
Ve bunu şu şekilde kullanın:
$ download-size request
request@2.83.0: 1.08 MiB
Kaynak kodu Github'da mevcuttur: api , cli aracı ve web istemcisi .
Paket boyutu bilgisini npmjs.com'a alma ve zaman içindeki paket şişmesini takip etme umuduyla bu yılın başlarında Paket Fobisini oluşturdum.
Bu, .NET Framework gibi npm install
sunucu tarafı bağımlılıkları express
veya dev bağımlılıkları için çalıştırdıktan sonra disk alanını ölçmek için tasarlanmıştır jest
.
Benioku bölümünden bu araç ve diğer benzer araçlar hakkında daha fazla bilgi edinebilirsiniz: https://github.com/styfle/packagephobia
2020 Güncellemesi
"Paketlenmemiş Boyut" (temelde Yayın Boyutu) npmjs.com web sitesinde "Toplam Dosyalar" ile birlikte mevcuttur. Ancak, bu yinelemeli bir anlam değildir npm install
çünkü tek bir paket muhtemelen birçok pakete bağlıdır (dolayısıyla Paket Fobisi hala geçerlidir).
Bu bilgiyi CLI'den yazdıran bir özellik için bekleyen bir RFC de vardır .
Modül paketleyiciniz olarak webpack kullanıyorsanız şunlara bir göz atın:
İlk seçeneği kesinlikle tavsiye ederim. Etkileşimli ağaç haritasında boyutu gösterir. Bu, paketlenmiş dosyanızdaki paketin boyutunu bulmanıza yardımcı olur.
Bu gönderideki diğer cevaplar size projenin boyutunu gösterir, ancak projenin tüm bölümlerini kullanmıyor olabilirsiniz, örneğin ağaç sallama ile. O zaman diğer yaklaşımlar size doğru boyutu göstermeyebilir.
Paket boyutunu kullanmayı deneyin .
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Visual Studio Code kullanıyorsanız, İçe Aktarma Maliyeti adlı bir uzantı kullanabilirsiniz .
Bu uzantı, editörde içe aktarılan paketin boyutunu satır içi olarak gösterecektir. Uzantı, içe aktarılan boyutu algılamak için babili-webpack-eklentili web paketini kullanır.
Npm-modül-istatistiklerine göz atabilirsiniz . Modülü kurmadan veya indirmeden bir npm modülünün boyutunu ve bağımlılıklarını alan bir npm modülüdür.
Kullanımı:
var stats = require("npm-module-stats");
stats.getStats("glob").then((stack) => {
let dependencies = Object.keys(stack);
let totalSize = dependencies.reduce((result, key, index) => {
return result + stack[key].size;
}, 0);
console.log('Total Size in Bytes ', totalSize);
console.log('Total Dependencies ', dependencies.length-1);
}).catch((err) => {
console.error(err);
});
Biraz ayrıntılı görünebilir, ancak uygun şekilde tanımladığınız sorunu çözer.
"Hızlı ve kirli" bir yol, küçültülmüş paketi hızlı bir şekilde indirmek için curl ve wzrd.in'i kullanmak ve ardından dosya boyutunu büyütmektir :
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
İndirme küçültülmüştür ancak gzip ile sıkıştırılmamıştır, ancak iki veya daha fazlasını karşılaştırdığınızda paketlerin göreli boyutu hakkında iyi bir fikir edinebilirsiniz.
howfat , toplam paket boyutunu gösterebilen bir araç daha:
npx howfat jasmine
node_modules
makinemde atm 21bg'yi işgal et;npkill
bunu yapmanıza yardımcı olabilir ! [buraya resim açıklamasını girin ] ( i.stack.imgur.com/BKbyU.png )