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?

Təxmini ölçülər: moment, lodash, dayjs, lodash-es
Təxmini ölçülər: moment, lodash, dayjs, lodash-es

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.

javascript
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ə _.chain kimi 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.

javascript
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 },
];