nie ma core bibliotek i potrzeba takich cudów jak is-even
No ale bez jaj... Do czegoś takiego ściągać specjalną bibliotekę? Litości. Funkcję sprawdzającą parzystość jest w stanie napisać ktoś po kilku pierwszych lekcjach programowania, a dla dowolnego stażysty czy juniora to jest coś, czego nieumiejętność napisania w ciągu więcej niż 3-4 minut powinno skutkować natychmiastowym zakończeniem jakichkolwiek rozmów czy współpracy.
czy tylko jak trzeba optymalizować wielkość wynikowej paczki?
Myślę, że nie wielkość paczki ma tutaj główne znaczenie, zwłaszcza w obecnych czasach, gdzie standardem są łącza kilkaset Mbit i szybsze oraz dyski po kilka TB. Tutaj chodzi raczej o to, że po pierwsze - im więcej dziwnych zależności (nad którymi nie panujesz, bo to jakieś zewnętrzne kawałki kodu) tym większa szansa, że ktoś coś zmieni albo wycofa i nagle Twój projekt się posypie, bo korzystasz z biblioteki A, która opiera się na B, które potrzebuje do działania C, a to C jest napisane tak, że potrzebuje D, które przestało działać, bo ktoś wycofał bibliotekę E ;)
Zresztą takich afer w stylu is-even
(albo jak kto woli - odd
) było pełno - ktoś coś wycofał, celowo zmienił sposób działania, podstawił złośliwy kod itp. Zwłaszcza, że o ile opieranie się o kod stworzony przez coś dużego i szanowanego jest w miarę bezpiecznie, ale im większe się robi drzewko zależności, wym większa szansa, że któryś z elementów układanki będzie miało wiarygodny. Ale potem to Ty będziesz miał problemy i robił z siebie idiotę, że Twoja apka nie działa. A tłumaczenia w stylu bo jakiś ziomek zablokował bibliotekę z której korzysta coś 5 poziomów pod moją apką
będzie słabe i mało profesjonalne.
Wszystkie foldery node_modules z tego projektu mają 64 356 plików i ważą 410 MB, czyli jest ich z 20 razy więcej, niż mojego kodu
[...]
Oczywiście robiąc produkcyjny build projektu to 99% z tych plików nie trafi do naszej finalnej paczki
Tutaj pełna zgoda - to, że rozmiar projektu jest jakiś absurdalny nie jest jakimś wielkim problemem. Pobranie tych 400MB to dosłownie 2-3 minuty, robisz to raz na początku a potem sobie już to siedzi na dysku. Powtarzam - problemem jest brak pełnej kontroli nad tym, co jest niezbędne do działania projektu. Oczywiście - zawsze jest takie ryzyko, ale jednak mniejsza szansa jest, że Microsoft wyłączy dotNeta, niż że jakiś koleś z Argentyny, które swoje biblioteki udostępnia w ramach własnej satysfakcji, nagle się obrazi na cały świat i zaorze projekt.