Sto iniziando a lavorare con webpack
un node/express
ambiente che sviluppa ReactJS
un'applicazione renderizzata lato server con react-router
. Sono molto confuso sul ruolo di ogni pacchetto webpack per gli ambienti dev e prod (runtime).
Ecco il riassunto della mia comprensione:
webpack
: È un pacchetto, uno strumento per unire diversi pezzi di un'applicazione web e raggrupparli in un unico file .js (normalmente bundle.js
). Il file dei risultati viene quindi servito in un ambiente prod per essere caricato dall'applicazione e contiene tutti i componenti necessari per eseguire il codice. Le caratteristiche includono la riduzione del codice, la minimizzazione, ecc.
webpack-dev-server
: È un pacchetto che offre un server per elaborare i file del sito web. Crea anche un singolo file .js ( bundle.js
) dai componenti client ma lo serve in memoria. Ha anche l'opzione ( -hot
) per monitorare tutti i file di costruzione e creare un nuovo bundle in memoria in caso di modifiche al codice. Il server è servito direttamente nel browser (es:) http:/localhost:8080/webpack-dev-server/whatever
. La combinazione di caricamento in memoria, elaborazione a caldo e servizio browser consente all'utente di aggiornare l'applicazione sul browser quando il codice cambia, ideale per l'ambiente di sviluppo.
Se ho dubbi sul testo di cui sopra, non sono davvero sicuro del contenuto di seguito, quindi per favore avvisami se necessario
Un problema comune quando si utilizza webpack-dev-server
con node/express
è che webpack-dev-server
è un server, così com'è node/express
. Ciò rende questo ambiente difficile da eseguire sia sul client che su alcuni codici node / express (un'API ecc.). NOTA: questo è ciò che ho affrontato, ma sarebbe bello capire perché ciò accade in modo più dettagliato ...
webpack-dev-middleware
: Si tratta di un middleware con le stesse funzioni di webpack-dev-server
(bundling inmemory, hot reloading), ma in un formato che può essere inserito server/express
nell'applicazione. In questo modo, hai una sorta di server (il webpack-dev-server
) interno al server del nodo. Oops: è un sogno folle ??? Come può questo pezzo risolvere l'equazione dev e prod e rendere la vita più semplice
webpack-hot-middleware
: Questo ... Bloccato qui ... webpack-dev-middleware
ho trovato questo pezzo durante la ricerca ... Non ho idea di come usarlo.
NOTA FINALE: Scusa se c'è qualche pensiero sbagliato. Ho davvero bisogno di aiuto per comprendere queste varianti in un ambiente complesso. Se opportuno, aggiungi altri pacchetti / dati che costruiranno l'intero scenario.
webpack-dev-middleware
(e potenzialmentewebpack-hot-middleware
) se volessi scrivere il tuo server di sviluppo personalizzato. A meno che non ci sia una funzione specifica che desideri chewebpack-dev-server
non abbia, dovresti semplicemente usarla.