Gerador de Configuração Webpack
Escrever um webpack.config.js de cabeça significa lembrar o formato exato de output, a regex test de cada loader e como os plugins se conectam. Este gerador transforma isso em um formulário curto: defina o arquivo de entrada, a pasta de saída e o modo de build, e marque as partes que você precisa: TypeScript, Babel, um loader CSS, HtmlWebpackPlugin e um servidor de desenvolvimento. Ele gera uma configuração webpack 5 limpa e pronta para copiar, com nomes de arquivo [contenthash] e output.clean já incluídos.
Como criar uma configuração webpack
-
1
Defina entry e saída
Digite o arquivo de entrada (padrão `./src/index.js`) e a pasta de saída (padrão `dist`).
-
2
Escolha o modo
Selecione `production` ou `development`. O valor é escrito direto no campo `mode`.
-
3
Ative loaders e plugins
Ative conforme a necessidade: TypeScript (`ts-loader`), Babel (`babel-loader`), um loader CSS (`style-loader` + `css-loader`), `HtmlWebpackPlugin` e um servidor de desenvolvimento.
-
4
Copie a configuração
O `webpack.config.js` é atualizado em tempo real. Use o botão de copiar e cole na raiz do seu projeto.
Saída padrão
Com os valores padrão (modo production, TypeScript, Babel, um loader CSS e HtmlWebpackPlugin), o gerador produz:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.[contenthash].js',
clean: true,
},
resolve: { extensions: ['.ts','.tsx','.js'] },
module: {
rules: [
{ test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ },
{ test: /\.jsx?$/, exclude: /node_modules/, use: 'babel-loader' },
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
],
},
plugins: [
new HtmlWebpackPlugin({ template: './src/index.html' }),
],
};
O que cada opção escreve
| Opção | O que ela adiciona à configuração |
|---|---|
| entry | O valor de entry, por ex. entry: './src/index.js'. |
| pasta de saída | output.path, resolvido com path.resolve(__dirname, 'dist'). |
| mode | mode: 'production' ou mode: 'development'. |
| TypeScript | Uma regra ts-loader para .ts/.tsx, mais essas extensões em resolve. |
| Babel | Uma regra babel-loader para .js/.jsx. |
| loader CSS | Uma regra que encadeia style-loader e css-loader para .css. |
| HtmlWebpackPlugin | A linha require mais new HtmlWebpackPlugin({ template: './src/index.html' }). |
| servidor de desenvolvimento | Um bloco devServer que serve a pasta de saída na porta 3000 com hot reload. |
Escolhas fixas na saída
Para manter a configuração inicial enxuta, alguns valores são definidos por você em vez de expostos como campos:
- Nomes de arquivo com hash.
output.filenameé semprebundle.[contenthash].js, o que invalida o cache do navegador sempre que o bundle muda. - Saída limpa.
output.clean: trueesvazia a pasta de saída a cada build, o substituto doclean-webpack-pluginno webpack 5. - O CSS é empacotado, não extraído.
style-loaderinjeta os estilos via JavaScript. Para emitir um arquivo.cssseparado em produção, adicioneMiniCssExtractPluginvocê mesmo. - Básico do servidor de desenvolvimento. Quando ativado,
devServerdefinestatic,port: 3000ehot: true. Adicione à mão opções comohistoryApiFallbackouproxyse o seu app precisar.
Como ampliar
O arquivo gerado é um ponto de partida, não uma configuração de produção completa. Próximos passos comuns que você adiciona à mão: MiniCssExtractPlugin para extrair o CSS, sass-loader para .scss, os módulos asset do webpack 5 para imagens e fontes, um valor devtool para os source maps e um bloco splitChunks para dividir o código.
Perguntas frequentes
Para o webpack 5. A saída usa output.clean e nomes de arquivo [contenthash], as convenções modernas do webpack 5, então nenhum plugin de limpeza extra é necessário.
Não, ele sempre escreve um webpack.config.js em JavaScript. Ativar a opção TypeScript adiciona uma regra ts-loader para o webpack compilar seu código .ts/.tsx; isso não muda o formato do próprio arquivo de configuração.
O bloco devServer gerado usa a porta 3000 com hot reload. Altere o valor de port no arquivo copiado se precisar de outra.
Sim. Cada opção adiciona a sua própria regra (ts-loader para .tsx?, babel-loader para .jsx?), então você pode ativar uma, a outra ou ambas conforme a forma como o seu projeto transpila.
Ferramentas relacionadas
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Ferramenta disponível em outros idiomas
- Generator konfiguracji webpack [PL]
- ตัวสร้างการตั้งค่า Webpack [TH]
- Generador de Configuración de Webpack [ES]
- Webpack設定ジェネレーター [JA]
- مولّد إعدادات Webpack [AR]
- Webpack 설정 생성기 [KO]
- Trình tạo cấu hình webpack [VI]
- Générateur de configuration Webpack [FR]
- Webpack-Konfigurationsgenerator [DE]
- Generator Konfigurasi Webpack [ID]
- Webpack-konfigurationsgenerator [SV]
- Webpack-configuratiegenerator [NL]
- Webpack Config Generator [EN]
- Generatore di Configurazione Webpack [IT]
- Генератор конфигурации webpack [RU]
- Webpack Yapılandırma Oluşturucu [TR]
- Webpack 配置生成器 [ZH]