Estou começando a trabalhar com webpack
um node/express
ambiente de desenvolvimento de um ReactJS
aplicativo renderizado do lado do servidor react-router
. Estou ficando muito confuso sobre a função de cada pacote webpack para ambientes dev e prod (runtime).
Aqui está o resumo do meu entendimento:
webpack
: É um pacote, uma ferramenta para reunir diferentes partes de uma aplicação web e empacotá-la em um único arquivo .js (normalmente bundle.js
). O arquivo de resultado é servido em um ambiente de produção para ser carregado pelo aplicativo e contém todos os componentes necessários para executar o código. Os recursos incluem redução de código, redução, etc.
webpack-dev-server
: É um pacote que oferece um servidor para processar os arquivos do site. Ele também cria um único arquivo .js ( bundle.js
) a partir de componentes do cliente, mas o serve na memória. Ele também tem a opção ( -hot
) para monitorar todos os arquivos de construção e construir um novo pacote na memória no caso de alterações de código. O servidor é servido diretamente no navegador (ex:) http:/localhost:8080/webpack-dev-server/whatever
. A combinação de carregamento na memória, processamento a quente e serviço do navegador permite ao usuário atualizar o aplicativo no navegador quando o código muda, ideal para ambiente de desenvolvimento.
Se eu tiver dúvidas sobre o texto acima, realmente não tenho certeza sobre o conteúdo abaixo, então por favor me avise se necessário
Um problema comum quando se utiliza webpack-dev-server
com node/express
é que webpack-dev-server
é um servidor, como é node/express
. Isso torna este ambiente complicado para executar o cliente e algum código de nó / expresso (uma API etc.). NOTA: Isso é o que eu enfrentei, mas seria ótimo entender por que isso acontece com mais detalhes ...
webpack-dev-middleware
: Este é um middleware com as mesmas funções de webpack-dev-server
(empacotamento de memória, recarregamento a quente), mas em um formato que pode ser injetado no server/express
aplicativo. Dessa forma, você tem uma espécie de servidor (o webpack-dev-server
) interno do servidor do nó. Opa: isso é um sonho maluco ??? Como esta peça pode resolver a equação de desenvolvimento e produção e tornar a vida mais simples
webpack-hot-middleware
: Este ... Preso aqui ... encontrei esta peça ao procurar webpack-dev-middleware
... Não tenho ideia de como usá-la.
NOTA FINAL: Desculpe, há algum pensamento errado. Eu realmente preciso de ajuda para entender essas variantes em um ambiente complexo. Se for conveniente, adicione mais pacotes / dados que irão construir todo o cenário.
webpack-dev-middleware
(e potencialmentewebpack-hot-middleware
) se quisesse escrever seu próprio servidor de desenvolvimento customizado. A menos que haja um recurso específico que você deseja quewebpack-dev-server
não tenha, você deve apenas usá-lo.