Dimensiunea modulelor nodurilor Vedeți cum l-am redus cu 90%

  • nodurilor

Șeful echipei Node.js

Este o dimineață de luni și trebuie să înființați un nou proiect. Instalați toate pachetele npm necesare, apoi începeți să lucrați la unele caracteristici. Mai devreme sau mai târziu veți găsi o problemă care necesită o codificare excepțională, așa că apelați la Google și căutați un răspuns - probabil un pachet. Îl instalați și creați o imagine de pachet de producție. Apoi, aruncați o privire asupra dimensiunii sale și ... așa faceți un atac de cord. „Cum am ajuns cu 1 GB node_modules?!” - lupta este reală și credeți-mă, la TSH am fost de mai multe ori acolo. Dar nu vă temeți, se poate face ceva pentru a reduce acea dimensiune! Am creat câțiva pași simpli pentru a-i reduce dimensiunea. Urmează-mă, te rog ...

Povestea noastră de fundal node_modules

Nu cu mult timp în urmă, am lucrat la acest proiect britanic de fintech, unde a trebuit să migram sistemul la o arhitectură de microservicii folosind Node.js. Când am fost introduși în platformă, am primit două cerințe de la client - trebuia să fie eficientă și ușoară. Performanța nu este o problemă pentru Node.js (cu excepția cazului în care blocați accidental bucla evenimentului), cu toate acestea, poate fi ușoară. Imaginea inițială a fost de 32 MB, ceea ce este un rezultat foarte frumos, dar s-a dovedit rapid că adevărata problemă este node_modules.

Contrar a ceea ce ați putea crede, dimensiunea aplicației este importantă în câteva domenii:

  • performanță - o aplicație ușoară și care rulează mai rapid, ocupă mai puține resurse, astfel încât funcționează mai eficient în timpul dezvoltării,
  • costuri - unele aplicații ușoare necesită mai puține resurse, ceea ce înseamnă că costurile infrastructurii scad și economisiți o mulțime de bani.

Dezvoltatorilor le place să își simplifice activitatea pentru a face totul mai repede - de aceea includ biblioteci suplimentare. Din păcate, acest lucru are ca rezultat o dimensiune crescută a întregii aplicații care poate ieși din control foarte repede. Așa a început aventura noastră cu „slăbirea” lucrului. Deci, ce am făcut pentru a le micșora?

Interesat de dezvoltarea de microservicii? 🤔 Asigurați-vă că consultați raportul nostru privind starea microserviciilor 2020 - pe baza opiniilor a peste 650 de experți în microservicii!

Reduceți numărul de dependențe

Acesta sună evident, dar înainte de a intra în soluții mai invazive, poate ar trebui să vă gândiți la pachetele pe care le instalați. Chiar ai nevoie de toate?

La TSH folosim site-uri precum npm.broofa sau npm.anvaka pentru a vedea de fapt un grafic întreg de dependențe pentru un singur pachet și apoi discutăm dacă acesta este ceva ce căutăm.

Fara gluma!

De multe ori văd oameni instalând Jest doar pentru teste unitare simple (aproximativ 460+ dependențe, +/- 60MB) atunci când există libs mai mici care vor face exact același lucru (Mocha - 115 dependențe, 12MB).