Kitabxana lazımdırmı
Hər npm install istifadəçinin yükləyəcəyi baytlar, yeniləməli olacağınız asılılıq və təhlükəsizlik səthidir. Köməkçi kitabxana o halda özünü doğruldur ki, daxili həll yoxdur və ya sizin versiyanız riskli olacaq. Üç sual: platforma bunu edirmi? Bir funksiya kifayətdirmi? Bundle nə qədər artır?
Rəqəmlər npm paketlərinin min + gzip ölçüsüdür (təxmini; versiyadan asılıdır). Real ölçünü layihənizin bundle hesabatından (vite-bundle-visualizer, webpack-bundle-analyzer) görün.
💡 Qayda: kitabxananı əlavə etməzdən əvvəl və sonra build ölçüsünü müqayisə edin; fərq PR təsvirinə yazılır.
lodash-es: düzgün import
lodash CommonJS paketidir: import _ from 'lodash' bütün kitabxananı (təxminən 25 KB gzip) gətirir. lodash-es eyni funksiyaların ES modul versiyasıdır, bundler istifadə olunmayan hissələri atır (tree shaking). Quraşdırma: npm i lodash-es.
import _ from 'lodash';
// the whole CommonJS library lands in the bundle
console.log(_.chunk([1, 2, 3, 4], 2).length);
// better
import { chunk } from 'lodash-es';
// ES modules: only chunk and its helpers are bundled
console.log(chunk([1, 2, 3, 4], 2).length);Alternativ: import debounce from 'lodash/debounce' (CommonJS paketindən tək fayl). Müasir bundler-lərdə lodash-es sadədir.
⚠️
import * as _ from 'lodash-es'və_.chainkimi zəncirvari üsullar tree shaking-i pozur. Funksiyaları adla import edin.
Ən faydalı funksiyalar
Kolleksiyalarla gündəlik iş: qruplaşdırma, lüğət, sıralama, cəm. Sətir kimi verilən yol ('city') o => o.city kimidir.
import { groupBy, keyBy, sortBy, sumBy } from 'lodash-es';
const orders = [
{ id: 1, city: 'Baku', total: 40 },
{ id: 2, city: 'Ganja', total: 15 },
{ id: 3, city: 'Baku', total: 25 },
];