Webpack minifikuje pliki .js / .css / inne? w szczególności ucina białe znaki i zmienia nazwy zmiennych na jednoznakowe. Ich dokumentacja zaleca włączenie tej opcji w kilku miejscach, np. tu.
Ma to swoje znaczenie do obfuskacji kodu, ale o ile rozumiem głównym założeniem jest optymalizacja czasu ładowania strony.
Nie do końca rozumiem, czemu to jest istotne pod względem czasu ładowania strony?
Serwery, jeśli się nie mylę, wysyłają zazwyczaj przeglądarkom kod strony skompresowany za pomocą gz. Kompresja bez problemu radzi sobie z często powtarzającymi się, choć długimi napisami. Dlatego też nie ma większego znaczenia, że po minifikacji będą pozostawać takie napisy, jak class
czy createElement
:
class a extends o.Component{render(){return o.createElement("p",null,"Hello"," ",this.props.toWhat)}}
Czemu ma znaczenie, że jest class a
zamiast class Hello
oraz extends o.Component
zamiast extends React.component
?
Czy dobrze rozumiem, że założenie jest takie, że biblioteczne nazwy (Component
, props
, createElement
, etc) mają szansę się często powtarzać, wobec czego kompresja gz poradzi sobie z tym, podczas gdy moje identyfikatory (class Hello
, import React from
react`) mają szansę niezbyt często się powtarzać, albo wręcz być tylko jednorazowe, w związku z czym muszą być zastąpione pojedynczymi literkami?