Zaczynam pracę z webpack
ze node/express
środowiskiem rozwijającym się ReactJS
po stronie serwera aplikacji ze świadczonych react-router
. Jestem bardzo zdezorientowany co do roli każdego pakietu webpack w środowiskach deweloperskich i prod (runtime).
Oto podsumowanie mojego zrozumienia:
webpack
: Jest pakietem, narzędziem do łączenia różnych elementów aplikacji internetowej i umieszczania ich w jednym pliku .js (zwykle bundle.js
). Plik wynikowy jest następnie udostępniany w środowisku produkcyjnym w celu załadowania przez aplikację i zawiera wszystkie niezbędne komponenty do uruchomienia kodu. Funkcje obejmują zmniejszanie kodu, minifikację itp.
webpack-dev-server
: To pakiet oferujący serwerowi przetwarzanie plików witryny internetowej. Tworzy również pojedynczy plik .js ( bundle.js
) z komponentów klienta, ale podaje go w pamięci. Ma również opcję ( -hot
), aby monitorować wszystkie pliki budowania i budować nowy pakiet w pamięci w przypadku zmian w kodzie. Serwer jest obsługiwany bezpośrednio w przeglądarce (np.:) http:/localhost:8080/webpack-dev-server/whatever
. Połączenie ładowania pamięci, przetwarzania na gorąco i obsługi przeglądarki pozwala użytkownikowi zaktualizować aplikację w przeglądarce, gdy zmienia się kod, co jest idealne dla środowiska programistycznego.
Jeśli mam wątpliwości co do powyższego tekstu, to naprawdę nie jestem pewien co do treści poniżej, więc w razie potrzeby proszę o informację
Częstym problemem podczas używania programu webpack-dev-server
z node/express
jest to, że webpack-dev-server
jest to serwer node/express
. To sprawia, że to środowisko jest trudne do uruchomienia zarówno klienta, jak i kodu węzła / ekspresu (API itp.). UWAGA: To jest to, z czym miałem do czynienia, ale wspaniale byłoby zrozumieć, dlaczego dzieje się to bardziej szczegółowo ...
webpack-dev-middleware
: Jest to oprogramowanie pośredniczące z tymi samymi funkcjami webpack-dev-server
(łączenie w pamięci, ponowne ładowanie na gorąco), ale w formacie, który można wstrzyknąć do server/express
aplikacji. W ten sposób masz swego rodzaju serwer (the webpack-dev-server
) insider the node server. Ups: Czy to szalony sen ??? Jak ten kawałek może rozwiązać równanie deweloperskie i prod i uprościć życie
webpack-hot-middleware
: To ... Utknąłem tutaj ... znalazłem ten kawałek, szukając webpack-dev-middleware
... Nie mam pojęcia, jak go użyć.
ENDNOTE: Przepraszam, czy jest jakieś błędne myślenie. Naprawdę potrzebuję pomocy, aby zrozumieć te warianty w złożonym środowisku. Jeśli jest to wygodne, dodaj więcej pakietów / danych, które utworzą cały scenariusz.
webpack-dev-middleware
(i potencjalniewebpack-hot-middleware
), gdybyś chciał napisać własny niestandardowy serwer programistyczny. Jeśli nie ma określonej funkcji, której chcesz, awebpack-dev-server
której nie masz, powinieneś po prostu jej użyć.