Kod

Podstawy Webpacka: kompleksowy przewodnik dla początkujących

Podstawy Webpacka: kompleksowy przewodnik dla początkujących

Bezpłatny kurs: „Szybki start w Pythonie»

Dowiedz się więcej

Na początku lat 90. tworzenie stron internetowych ograniczało się do użycia HTML i CSS. W tamtym czasie strony internetowe były statyczne i służyły jedynie do wyświetlania informacji użytkownikom. Wraz z pojawieniem się JavaScript w latach 2000. programiści mogli dodawać do stron internetowych elementy interaktywne, co znacznie poprawiło komfort użytkowania i rozszerzyło funkcjonalność aplikacji internetowych. W rezultacie projektowanie i tworzenie stron internetowych uległo znaczącym zmianom, prowadząc do tworzenia dynamicznych i interaktywnych zasobów internetowych, które mogą sprostać zróżnicowanym potrzebom użytkowników online.

Wraz ze wzrostem popularności stron internetowych wzrosła ilość używanego JavaScript, a także złożoność zależności między różnymi elementami stron internetowych. Programista front-end nie musiał już po prostu ładować plików w HTML, ale musiał również monitorować kolejność które załadowali, biorąc pod uwagę ich wzajemne powiązania. W przeciwnym razie strona internetowa może nie działać poprawnie. Aby rozwiązać ten problem, stworzono Webpack — modułowy pakiet, który łączy skrypty JavaScript i ich zależności w jeden plik. W tym artykule przyjrzymy się bliżej, jak działa Webpack i stworzymy nasz pierwszy projekt z użyciem tego narzędzia wspólnie z Aleksiejem Pukhovem, dyrektorem działu w Notamedia.Integrator.

  • Czym jest Webpack?
  • Dlaczego go potrzebujesz?
  • Instalacja i konfiguracja początkowa.
  • Jak działa Webpack.
  • Tryby działania.
  • Programy ładujące.
  • Wtyczki.
  • Co przeczytać?

Dyrektor Działu w Notamedia.Integrator odpowiada za strategiczne zarządzanie i koordynację wszystkich procesów w swoim dziale. Do jego obowiązków należy opracowywanie i wdrażanie skutecznych strategii biznesowych, zarządzanie zespołem specjalistów oraz współpraca z kluczowymi partnerami. Dyrektor monitoruje również realizację wyznaczonych celów i zadań, zapewniając wzrost i rozwój działu w konkurencyjnym otoczeniu. Doświadczenie i znajomość rynku pozwalają mu podejmować świadome decyzje mające na celu poprawę wydajności i jakości świadczonych usług.

Czym jest Webpack

Webpack to potężny, modułowy bundler o otwartym kodzie źródłowym, opracowany w języku JavaScript. Został zaprojektowany do efektywnego przetwarzania i łączenia wielu plików JavaScript i ich zależności w jeden plik, który następnie jest wykorzystywany przez przeglądarkę do poprawy wydajności aplikacji internetowych. Dzięki swojej elastyczności i skalowalności, Webpack pozwala programistom optymalizować ładowanie zasobów, minimalizować rozmiary plików i poprawiać komfort pracy użytkownika. Dzięki różnym wtyczkom i loaderom, Webpack pozwala dostosować proces kompilacji do specyficznych potrzeb projektu, co czyni go niezbędnym narzędziem w nowoczesnym tworzeniu stron internetowych.

Programiści wybierają Webpacka ze względu na obszerną dokumentację i aktywną społeczność. Ten bundler oferuje wiele zalet w porównaniu z konkurencją. Po pierwsze, Webpack zapewnia elastyczną konfigurację i umożliwia efektywne zarządzanie zależnościami modułów. Po drugie, obsługuje różne formaty plików i optymalizuje wydajność aplikacji, implementując technologie takie jak dzielenie kodu i leniwe ładowanie. Warto również zwrócić uwagę na integrację z popularnymi frameworkami i bibliotekami, co czyni Webpacka wszechstronnym narzędziem dla współczesnych programistów internetowych. Te czynniki przyczyniają się do jego popularności i wybór wśród programistów.

  • Przyspiesza rozwój, eliminując potrzebę ciągłego przeładowywania strony internetowej podczas zmiany plików JS.
  • Umożliwia rozdzielenie kodu na osobne moduły, które można ponownie wykorzystać w aplikacji internetowej.
  • Unika problemów z nadpisywaniem zmiennych globalnych. Każdy plik utworzony za pomocą Webpacka jest modułem. Dlatego każda zmienna utworzona w tym pliku będzie miała zasięg lokalny. W związku z tym problem nadpisywania zmiennych globalnych nie występuje.
  • Obsługuje minifikację, co oznacza zmniejszenie rozmiaru kodu bez zmiany jego funkcjonalności. Pozwala to skompresować wynikowy plik JS i przyspieszyć jego wykonywanie.
  • Może współpracować z różnymi specyfikacjami modułów: CommonJS, AMD, modułami ES i innymi.

Każdy projekt internetowy, nawet najprostszy, zawiera pliki HTML, CSS, JavaScript oraz dodatkowe zasoby, takie jak czcionki i obrazy. Głównym zadaniem Webpacka jest optymalne spakowanie wszystkich tych elementów do jednego pliku index.html. Pozwala to na poprawną konfigurację linków i Uwzględnij wszystkie zależności, co znacznie upraszcza proces tworzenia i poprawia wydajność Twojej aplikacji internetowej. Korzystanie z Webpacka sprzyja efektywniejszemu zarządzaniu zasobami i minimalizuje czas ładowania strony, co jest ważnym czynnikiem dla SEO.

Ogólny schemat modułu bundlerZrzut ekranu: Webpack / Skillbox Media

Dlaczego jest to potrzebne?

Skrypty stron internetowych mogą różnić się rozmiarem, zaczynając od kilkuset do kilkudziesięciu tysięcy linii kodu JavaScript. Zarządzanie tak dużą ilością kodu i uwzględnianie relacji między funkcjami a modułami to złożone zadanie. Dlatego wielu programistów woli organizować swój kod, dzieląc go na kilka plików i umieszczając każdy z nich osobno. Takie podejście nie tylko upraszcza proces tworzenia, ale także poprawia czytelność kodu, ułatwia konserwację i testowanie oraz sprzyja wydajniejszej pracy nad dużymi projektami.

Ładowanie skryptów we właściwej kolejności jest kluczowe. Nieprawidłowa hierarchia skryptów może prowadzić do nieprawidłowego renderowania strony i nieprawidłowego działania poszczególnych elementów. Może to negatywnie wpłynąć na komfort użytkownika i ogólne postrzeganie witryny. Dlatego ważne jest, aby starannie zaplanować kolejność ładowania skryptów, aby zapewnić ich prawidłowe działanie i zoptymalizować stronę internetową.

Istnieje rozwiązanie tego problemu. Wyobraź sobie połączenie różnych plików w jeden skrypt, który uwzględnia ich relacje i kolejność ładowania. Tylko ten jeden skrypt jest potrzebny do umieszczenia go w kodzie strony internetowej. Może to brzmieć jak magia, ale tak właśnie działa Webpack. Webpack usprawnia proces tworzenia, upraszczając zarządzanie zależnościami i poprawiając wydajność aplikacji internetowych. Umożliwia efektywną pracę z modułami, minifikację plików i automatyzację zadań kompilacji, co czyni go niezbędnym narzędziem dla współczesnych programistów stron internetowych.

Instalacja i konfiguracja początkowa

W przypadku większości projektów preferowana jest lokalna instalacja Webpacka. Pomoże to uniknąć konfliktów wersji podczas jednoczesnej pracy na wielu stronach. Instalacja lokalna zapewnia stabilność i kompatybilność, co jest szczególnie ważne dla utrzymania poprawnego procesu kompilacji.

Webpack jest zazwyczaj uruchamiany za pomocą jednego lub więcej skryptów NPM, które wyszukują moduły w lokalnym katalogu node_modules. Zapełnianie tego katalogu omówimy później. Teraz skupmy się na podstawach pracy z Webpackiem.

Zanim rozpoczniesz pracę z Webpackiem, musisz zainstalować Node.js na swoim komputerze. Node.js to niezbędne narzędzie do wykonywania kodu JavaScript po stronie serwera i pracy z pakietami. Aby zainstalować Node.js, odwiedź oficjalną stronę internetową i pobierz najnowszą wersję, która odpowiada Twojemu systemowi operacyjnemu. Uruchom pobrany plik instalacyjny i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby dokończyć instalację. Sprawdź, czy instalacja zakończyła się pomyślnie, sprawdzając wersję Node.js w wierszu poleceń za pomocą polecenia „node -v”. Umożliwi to bezproblemowe korzystanie z Webpacka do tworzenia nowoczesnych aplikacji internetowych.

Otwórz terminal lub wiersz poleceń. Utwórz nowy folder dla swojego projektu i przejdź do niego. Umożliwi to uporządkowanie plików projektu i ułatwi późniejszą pracę z nimi. Upewnij się, że znajdujesz się w odpowiednim katalogu przed rozpoczęciem tworzenia.

Uruchom polecenie npm init, aby utworzyć plik package.json. Ten plik będzie zawierał wszystkie zależności projektu, a także inne ważne informacje potrzebne do jego działania. Prawidłowe skonfigurowanie pliku package.json jest kluczowym krokiem w zarządzaniu zależnościami i konfiguracją projektu.

Aby zainstalować pakiet modułów, uruchom polecenie npm install. To polecenie pobierze wszystkie zależności i niezbędne pakiety dla Twojego projektu, zapewniając poprawne działanie modułu bundlera. Przed uruchomieniem tego polecenia upewnij się, że Node.js i npm są zainstalowane na Twoim komputerze.

Flaga „save-dev” w Webpacku określa, że ​​bundler będzie używany do tworzenia pośrednich wersji witryny, a nie do ostatecznej wersji. Jeśli planujesz używać innych trybów Webpacka, które zostaną omówione później, podanie tej flagi jest opcjonalne.

Utwórz plik webpack.config.js w katalogu głównym swojego projektu. Ten plik odgrywa kluczową rolę w konfigurowaniu ustawień kompilacji i integracji niezbędnych wtyczek. Pozwala on zoptymalizować proces kompilacji, zarządzać zależnościami i dostosowywać różne aspekty rozwoju, zapewniając efektywne wykonywanie kodu JavaScript. Prawidłowa konfiguracja webpacka pomoże Ci poprawić wydajność i uprościć wdrażanie aplikacji.

Aby zoptymalizować plik, dodaj poniższy kod:

W tej sekcji określamy punkt wejścia do projektu, który znajduje się w src/web_project/index.js. Definiujemy również nazwę pliku wyjściowego, który będzie nosił nazwę main.js, i ustawiamy ścieżkę do katalogu, w którym zapisywany jest skompilowany projekt, znajdującego się w folderze dist. Upraszcza to proces tworzenia i kompilacji, zapewniając wygodny dostęp do głównych komponentów projektu.

Otwórz plik package.json utworzony w kroku 2 i dodaj polecenie kompilacji za pomocą Webpacka. Określ plik konfiguracyjny webpack.config.js za pomocą flagi —config. Umożliwi to dostosowanie kompilacji projektu do Twoich wymagań i optymalizację procesu rozwoju.

Zapisz plik i uruchom następujące polecenie w konsoli:

Po zakończeniu tej operacji plik main.js zostanie zaktualizowany w katalogu projektu, w którym wszystkie skrypty i zależności zostaną uporządkowane we właściwej kolejności. Zoptymalizuje to ładowanie i wykonywanie kodu JavaScript, znacząco poprawiając wydajność aplikacji internetowej. Aktualizacja pliku main.js gwarantuje, że wszystkie używane biblioteki i moduły zostaną poprawnie uwzględnione, co jest ważne dla stabilnego działania projektu.

Teraz możliwe jest użycie pakietu do budowania rzeczywistych projektów JavaScript. To podstawowy przykład instalacji Webpacka, ale aby stworzyć pełnoprawną stronę internetową, będziesz musiał zainstalować dodatkowe wtyczki i skonfigurować ustawienia, które pomogą zoptymalizować wydajność i poprawić funkcjonalność aplikacji. Skuteczna konfiguracja Webpacka może znacznie usprawnić proces rozwoju i zwiększyć efektywność ładowania zasobów na stronie.

Jak działa Webpack

W tym artykule przyjrzymy się wykorzystaniu Webpacka w rzeczywistym projekcie. Załóżmy, że nasza strona zawiera kilka skryptów. Webpack to potężne narzędzie do pakowania modułów JavaScript i zarządzania zależnościami. Upraszcza proces tworzenia, umożliwiając łączenie, minimalizowanie i optymalizowanie skryptów. Prowadzi to do poprawy wydajności aplikacji internetowych i skrócenia czasu ładowania stron.

Aby rozpocząć korzystanie z Webpacka, należy go zainstalować i skonfigurować plik konfiguracyjny. W tym pliku można określić punkty wejścia i wyjścia kompilacji, a także dodać wtyczki i moduły ładujące do obsługi różnych typów plików, takich jak CSS i obrazy.

Po skonfigurowaniu Webpacka będziesz mógł efektywnie zarządzać swoimi skryptami, co nie tylko uprości proces tworzenia, ale także zwiększy skalowalność projektu. Użycie Webpacka w projekcie zapewni bardziej ustrukturyzowany i uporządkowany kod, co pozytywnie wpłynie na jego łatwość obsługi i rozszerzalność.

Ważne jest, aby elementy były wymieniane we właściwej kolejności, ponieważ zapewnia to prawidłowe powiązania i realizację funkcji krzyżowych. Nieprawidłowa kolejność może prowadzić do błędów podczas uruchamiania lub utraty niektórych funkcji.

Dla programisty wygodniejsze jest dołączenie jednego skryptu do strony, który integruje wszystkie niezbędne szczegóły i sekwencje wywołań. Upraszcza to proces tworzenia, zwiększa produktywność i zmniejsza prawdopodobieństwo wystąpienia błędów. Użycie jednego skryptu skraca również czas ładowania strony, co pozytywnie wpływa na komfort użytkownika i pozycję witryny w wynikach wyszukiwania (SEO).

Webpack działa zgodnie z określonym modelem, w którym głównym elementem jest punkt wejścia – plik index.js. Ten plik łączy wszystkie pliki JavaScript używane w projekcie. Wewnątrz punktu wejścia pliki są uwzględniane z uwzględnieniem hierarchii, co pozwala na efektywniejszą organizację struktury kodu.

Projekt wykorzystuje skrypty, które Webpack połączy w jeden plik. Następnie należy określić odwołanie do pliku index.js w pliku webpack.config.js. Umożliwi to Webpackowi prawidłowe przetwarzanie i budowanie wszystkich zależności, zapewniając optymalną wydajność aplikacji.

Tryby działania

Webpack oferuje różne tryby działania, które optymalizują proces tworzenia oprogramowania: programistyczny, produkcyjny i bezprocesorowy. Każdy z tych trybów ma własne funkcje, które pomagają zwiększyć wydajność budowania i debugowania. Aby uzyskać bardziej szczegółowy przegląd funkcjonalności i ustawień trybów, zalecamy zapoznanie się z oficjalną dokumentacją Webpack.

Tryb programistyczny to kluczowe narzędzie do tworzenia pośrednich kompilacji aplikacji internetowych, które przyspiesza kodowanie. Dostarcza programistom szczegółowych informacji o błędach i ostrzeżeniach, co znacznie upraszcza proces debugowania. Do jego głównych funkcji należą zintegrowany debugger, obsługa funkcji Hot Module Reloading (HMR) oraz inne narzędzia ułatwiające pracę ze skryptami JavaScript. Korzystanie z trybu deweloperskiego może poprawić wydajność i jakość tworzenia aplikacji internetowych.

Tryb produkcyjny idealnie nadaje się do kompilacji wersji finalnych. Optymalizuje on wygenerowany kod, znacznie przyspieszając ładowanie stron i zmniejszając rozmiar pliku poprzez kompresję i optymalizację modułów. Należy jednak pamiętać, że ten tryb może sprawić, że kod będzie mniej czytelny, dlatego nie jest zalecany do kompilacji średniozaawansowanych. Korzystanie z trybu produkcyjnego jest ważne dla poprawy wydajności aplikacji internetowych i poprawy komfortu użytkowania.

Domyślnie tryb ten jest aktywowany bez optymalizacji i bez szczegółowego raportowania błędów i ostrzeżeń. Pozwala on użytkownikom skupić się na podstawowej funkcjonalności, zapewniając jednocześnie stabilne działanie systemu. Jest odpowiedni dla osób preferujących minimalistyczne podejście i nie wymagających szczegółowej analizy wydajności ani wykrywania potencjalnych problemów. Domyślne włączenie tego trybu zapewnia dostępność wszystkich podstawowych funkcjonalności bez zbędnych zakłóceń.

Każdy tryb pozwala dostosować parametry kompilacji do wymagań projektu. Można na przykład ustawić poziom optymalizacji dla trybu produkcyjnego, co poprawi wydajność i zmniejszy rozmiar pliku wyjściowego. Pozwala to dostosować kompilację do Twoich konkretnych potrzeb, zapewniając maksymalną wydajność aplikacji.

Aby uruchomić Webpacka z wymaganymi opcjami, musisz użyć wiersza poleceń. Określ tryb działania za pomocą flagi „mode”. Na przykład:

Aby ustawić konkretny domyślny tryb w Webpacku, musisz go określić w pliku konfiguracyjnym. W przeciwnym razie zostanie użyty domyślny tryb „none”. Jest to ważne dla optymalizacji kompilacji i zarządzania procesem rozwoju. Prawidłowe ustawienie trybu może poprawić wydajność i uprościć debugowanie projektu.

Programy ładujące

Programy ładujące służą do zwiększenia funkcjonalności Webpacka. Umożliwiają przetwarzanie kodu napisanego w różnych językach programowania i zarządzanie plikami w różnych formatach. Programy ładujące to kluczowe narzędzia do integracji arkuszy CSS, obrazów, czcionek i innych zasobów w projekcie. Korzystając z nich, możesz zoptymalizować proces kompilacji i poprawić wydajność swojej aplikacji.

  • babel-loader: Tłumaczy JavaScript ES6 na JavaScript ES5, który jest rozumiany przez wszystkie przeglądarki.
  • ts-loader: Transpiluje TypeScript na JavaScript.
  • coffee-loader: Transpiluje CoffeeScript na JavaScript.
  • css-loader: Tłumaczy preprocesory CSS, takie jak SASS i LESS, na CSS.
  • style-loader: Umieszcza ciągi wyjściowe wygenerowane przez css-loader w znacznikach

Wtyczki

Wtyczki Webpack odgrywają kluczową rolę w efektywnym zarządzaniu zależnościami, organizacji modułów i optymalizacji kodu. Znacznie przyspieszają proces tworzenia oprogramowania, czyniąc go wygodniejszym i bardziej produktywnym. Korzystając z wtyczek Webpack, programiści mogą poprawić wydajność swoich aplikacji, zoptymalizować obciążenie zasobów i uprościć proces kompilacji. Dzięki temu mogą skupić się na pisaniu wysokiej jakości kodu, nie martwiąc się o złożoność związaną z konfiguracją i zarządzaniem projektem.

Aktualnie dostępnych jest 24 wewnętrznych i 48 zewnętrznych wtyczek. Wybraliśmy dla Ciebie te najpopularniejsze i najbardziej przydatne, które z pewnością przydadzą Ci się w pracy.

HtmlWebpackPlugin to narzędzie, które generuje plik HTML dla Twojej aplikacji internetowej, automatycznie dodając linki do generowanych plików JavaScript. Oferuje dodatkowe funkcje, takie jak minifikacja HTML i możliwość korzystania z szablonów stron. Upraszcza to proces tworzenia, umożliwiając łatwe zarządzanie zależnościami i optymalizację wydajności witryny.

MiniCssExtractPlugin to wtyczka Webpack, która umożliwia wyodrębnianie kodu CSS z plików JavaScript i zapisywanie go w osobnych plikach. Korzystanie z tej wtyczki poprawia wydajność ładowania stron poprzez zmniejszenie rozmiaru głównego pliku JavaScript, co z kolei przyspiesza ładowanie treści. Efektywne oddzielenie kodu CSS i JS poprawia również buforowanie stylów, co może pozytywnie wpłynąć na SEO i komfort użytkownika.

DefinePlugin to narzędzie, które umożliwia ustawianie zmiennych globalnych w aplikacji. Zmiennych tych można używać do testowania warunków i modyfikowania zachowania strony internetowej na podstawie ich wartości. Korzystanie z DefinePlugin upraszcza zarządzanie konfiguracjami i ustawieniami aplikacji, umożliwiając dostosowanie jej funkcjonalności do różnych warunków i środowisk. Jest to szczególnie przydatne do optymalizacji wydajności i poprawy komfortu użytkowania, ponieważ można dynamicznie zmieniać zachowanie aplikacji bez konieczności modyfikowania kodu źródłowego.

HotModuleReplacementPlugin (HMR) umożliwia aktualizowanie modułów w czasie rzeczywistym bez przeładowywania strony. Ta funkcja znacznie przyspiesza proces tworzenia aplikacji internetowych i skraca czas poświęcany na debugowanie. Korzystanie z HMR usprawnia proces tworzenia, ponieważ programiści natychmiast widzą zmiany wprowadzone w kodzie, co pomaga szybciej identyfikować i naprawiać błędy.

CleanWebpackPlugin to przydatne narzędzie do optymalizacji procesu kompilacji projektu. Automatycznie czyści folder kompilacji przed każdą nową kompilacją, umożliwiając pozbycie się niepotrzebnych plików i folderów. Korzystanie z CleanWebpackPlugin pomaga utrzymać porządek w katalogu kompilacji i zmniejsza prawdopodobieństwo wystąpienia konfliktów między starymi i nowymi plikami. Jest to szczególnie ważne dla poprawy wydajności i uproszczenia wdrażania projektu. Zintegrowanie tej wtyczki z projektem opartym na Webpacku zapewni czysty i uporządkowany proces rozwoju.

CopyWebpackPlugin to wtyczka Webpack, która umożliwia kopiowanie plików z jednego katalogu do drugiego podczas kompilacji projektu. Jest ona przydatna do zachowania plików konfiguracyjnych, obrazów i innych niezbędnych zasobów, które mogą być używane w aplikacji. Korzystanie z CopyWebpackPlugin pomaga uporządkować strukturę projektu, zapewniając poprawną lokalizację wszystkich niezbędnych plików i upraszczając ich zarządzanie. Usprawnia to proces kompilacji i pomaga uniknąć błędów związanych z brakującymi zasobami.

UglifyjsPlugin to narzędzie do minifikacji kodu JavaScript, co znacznie zmniejsza rozmiar pliku, a w rezultacie przyspiesza ładowanie stron internetowych. Korzystanie z tej wtyczki optymalizuje wydajność witryny, poprawiając komfort użytkownika i poprawiając pozycję w wyszukiwarkach. Minifikacja kodu zmniejsza również ilość przesyłanych danych, co jest szczególnie ważne dla użytkowników mobilnych i korzystających z wolnych połączeń internetowych. Włączenie wtyczki UglifyjsPlugin do procesu kompilacji projektu pomaga tworzyć wydajniejsze i szybsze aplikacje internetowe.

BundleAnalyzerPlugin to narzędzie, które analizuje strukturę wygenerowanego pliku JavaScript. Pomaga ono zidentyfikować, które moduły i zależności wpływają na rozmiar pliku. Korzystanie z tej wtyczki pozwala programistom optymalizować aplikacje internetowe, zmniejszając ich rozmiar i poprawiając wydajność. Dzięki analizie zapewnianej przez BundleAnalyzerPlugin można podejmować świadome decyzje o tym, które zasoby zoptymalizować lub usunąć, co ostatecznie prowadzi do wydajniejszej pracy aplikacji i lepszego doświadczenia użytkownika.

Co warto przeczytać?

Oficjalna dokumentacja Webpacka to najlepsze źródło informacji o tym narzędziu. Jest ona regularnie aktualizowana i zawiera praktyczne przykłady, co czyni ją niezbędnym źródłem dla użytkowników, którzy chcą opanować pakowanie i optymalizację swoich aplikacji internetowych.

Aby zgłębić temat, zalecamy zapoznanie się z kilkoma książkami. Publikacje te oferują cenne spostrzeżenia i szczegółowe analizy, które pomogą Ci poszerzyć wiedzę i zrozumienie tematu. Lektura specjalistycznej literatury nie tylko wzbogaci Twoje doświadczenie, ale także zapewni nowe perspektywy do dalszej nauki.

  • SurviveJS. Webpack 5: From Apprentice to Master autorstwa Juho Vepsalainena;
  • Modern Full-Stack Development: Using TypeScript, React, Node.js, Webpack, and Docker autorstwa Franka Zamettiego.

Dowiedz się więcej o projektowaniu na naszym kanale Telegram. Subskrybuj, aby być na bieżąco z ciekawymi treściami i nowościami w świecie designu!

Przeczytaj także:

  • Czym jest JavaScript i dlaczego go potrzebujesz?
  • Test: Jak dobrze znasz historię przeglądarki?
  • Przewodnik dla początkujących po Node.js