Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Quando trabalhamos com projetos frontend utilizando webpack e webpack-dev-server, um problema comum que aparece é o erro "Cannot Get /" ao tentar acessar a aplicação no navegador. Esse erro indica que o servidor não está conseguindo servir a rota padrão, dificultando o desenvolvimento local. Neste guia, vamos explorar uma abordagem prática para diagnosticar e resolver essa situação, considerando configurações típicas e possíveis armadilhas.
O primeiro passo é entender o fluxo de como o webpack-dev-server serve os arquivos. Diferente de um servidor HTTP tradicional, ele serve o conteúdo gerado na pasta de saída (tipicamente dist) e precisa estar configurado corretamente para servir a rota raiz.
No cenário apresentado, o arquivo index.html não está na pasta dist, mas na raiz do projeto, enquanto o script de bundle aponta para dist/bundle.js. Essa discrepância é uma das causas mais frequentes do erro. Além disso, o webpack-dev-server, por padrão, serve o conteúdo da pasta definida na configuração contentBase ou static (dependendo da versão), que pode não incluir o index.html nesse local. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Para resolver o problema, há várias estratégias que podem ser combinadas:
1. Configurar o webpack-dev-server para servir o index.html corretamente
Na configuração do webpack, é possível especificar o atributo devServer e ajustar o static para apontar para a pasta onde está o index.html. Por exemplo:
// webpack.config.js
module.exports = {
// ...configuração existente...
devServer: {
static: {
directory: path.resolve(__dirname, '.'), // pasta raiz do projeto
},
historyApiFallback: true, // para SPAs
port: 3000
},
}.
Isso garante que o servidor sirva o index.html na raiz, mesmo ele estando fora da pasta dist. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
2. Ajustar o index.html para estar na pasta de saída
Mover o arquivo index.html para dentro de dist é uma prática comum, especialmente ao usar plugins como html-webpack-plugin, que automatizam essa tarefa. Assim, o arquivo será servido corretamente na rota /. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
3. Atualizar o script de inclusão do bundle
Verifique se o script no index.html aponta para o local correto do bundle, por exemplo: O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
<script type="module" src="bundle.js"></script>
Se o index.html estiver na pasta raiz, e o bundle na dist, ajustar o caminho ou colocar ambos na mesma pasta simplifica o acesso. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
index.html fora da pasta de saída ao usar webpack, pois isso pode gerar inconsistências na hora do servidor.html-webpack-plugin ajuda a automatizar a inserção do script correto, além de garantir que o HTML seja atualizado automaticamente com as mudanças.historyApiFallback previne problemas ao usar rotas que não existam na pasta física.index.html e ajuste a configuração do static no webpack.config.js.index.html para dentro da pasta dist ou usar html-webpack-plugin para gerenciar o arquivo.Ao adotar essas práticas, é possível eliminar o erro "Cannot Get /" e facilitar o ciclo de desenvolvimento, mantendo a operação simples e previsível. Problemas como esse são comuns na configuração inicial, mas com ajustes pontuais, a rotina de desenvolvimento fica mais fluida e menos frustrante. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Carregando comentários...