Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao trabalhar com projetos frontend que utilizam webpack-dev-server, é comum encontrar o erro "Cannot GET /" ao tentar acessar a aplicação no navegador. Apesar de parecer um problema simples, sua origem pode estar relacionada a configurações específicas do webpack, especialmente ao lidar com rotas, arquivos estáticos e o servidor de desenvolvimento.
Esse erro geralmente indica que o servidor não conseguiu localizar a rota ou o arquivo solicitado pelo navegador. Pode ocorrer por diversos motivos, como a ausência de um arquivo HTML na pasta esperada, configuração incorreta do publicPath, ou até mesmo problemas na forma como o servidor é iniciado. 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.
No cenário de projetos com React ou Next.js, o mais comum é que o webpack esteja configurando o bundle, mas o servidor de desenvolvimento não está servindo o arquivo HTML principal corretamente. Além disso, se o index.html não estiver na pasta que o servidor espera, o erro é inevitável.
Primeiro, é importante garantir que o webpack esteja gerando o HTML de entrada corretamente. Para isso, recomenda-se usar o plugin html-webpack-plugin, que automatiza a injeção do script do bundle na página HTML. Essa configuração evita erros de caminho ou de arquivo não encontrado. 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.
Segundo, ajustar a propriedade output.publicPath para o valor 'auto' ajuda a resolver problemas de roteamento e carregamento de assets. Essa configuração informa ao webpack que os recursos devem ser carregados relativos ao caminho atual, facilitando a compatibilidade com diferentes ambientes de desenvolvimento. 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.
Terceiro, verificar se o servidor de desenvolvimento está apontando para o arquivo HTML correto e se o comando de start do webpack-dev-server está bem configurado. Idealmente, o HTML deve estar na raiz do projeto ou na pasta configurada, e o servidor deve estar apontando para esse arquivo ao iniciar. 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.
// webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin'). const path = require('path'). module.exports = {
mode: 'development',
entry: './src/app.ts',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
publicPath: 'auto'
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html', // Asegure-se de que o index.html está nesta pasta
})
],
devtool: 'inline-source-map',
module: {
rules: [
{ test: /\.ts$/, use: 'ts-loader', exclude: /node_modules/ }
]
},
resolve: {
extensions: ['.ts', '.js']
}
}. // index.html (na raiz ou na pasta src)
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>App React/Next</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="dist/bundle.js"></script>
</body>
</html>
Essa abordagem garante que o webpack gere o HTML de entrada corretamente, ajustando o publicPath para facilitar o carregamento dos assets, além de assegurar que o servidor de desenvolvimento sirva o arquivo HTML gerado. Caso o erro persista, vale conferir a estrutura de pastas, o comando utilizado para iniciar o servidor e se há conflitos de roteamento com o Next.js, que possui sua própria gestão de rotas. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. 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. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Por fim, sempre que estiver em dúvida, teste acessando diretamente o arquivo HTML gerado na pasta dist pelo navegador. Assim, consegue verificar se o problema é na geração do arquivo ou na forma como o servidor o serve. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. 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. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Carregando comentários...