O que é Webpack e para que serve?
\n\nWebpack é um poderoso e flexível empacotador de módulos (module bundler) para aplicações JavaScript, que funciona no ambiente Node.js. Sua principal tarefa é pegar vários arquivos (JavaScript, CSS, imagens, fontes e outros recursos), analisar suas dependências e agrupá-los em um ou vários bundles otimizados, prontos para uso no navegador.
\n\nNo desenvolvimento web moderno, as aplicações raramente consistem em um único arquivo. Normalmente, o código é dividido em vários módulos, são usadas bibliotecas externas (pacotes npm), pré-processadores (SASS, LESS), TypeScript, JSX e outras tecnologias. Os navegadores nem sempre conseguem processar eficientemente essa quantidade de arquivos e dependências. É aí que o Webpack entra em ação.
\n\nPrincipais tarefas do Webpack:
\n- \n
- Empacotamento de módulos: Unir todos os arquivos JavaScript e suas dependências em um ou vários bundles. \n
- Transformação de recursos: Aplicar loaders para transformar arquivos (por exemplo, SCSS em CSS, TypeScript em JavaScript, imagens em base64). \n
- Otimização: Minificação de código, remoção de código não utilizado (tree shaking), divisão de código em chunks (code splitting) para carregamento lazy. \n
- Gerenciamento de ambiente: Suporte aos modos de desenvolvimento (development) e produção (production) com configurações diferentes. \n
- Dev Server: Servidor integrado para desenvolvimento com recarga rápida de módulos (Hot Module Replacement — HMR). \n
O Webpack é o padrão de facto para empacotamento de projetos JavaScript modernos, especialmente aplicações React, Vue.js e Angular.
\n\nInstalação do Webpack
\n\nPara trabalhar com Webpack, é necessário Node.js (versão 12 ou superior) e um gerenciador de pacotes npm (ou yarn). A instalação é feita via npm. Recomenda-se instalar o Webpack localmente em cada projeto.
\n\nPasso 1: Inicialização do projeto
\nmkdir my-webpack-project\ncd my-webpack-project\nnpm init -y\n\nPasso 2: Instalação dos pacotes principais
\nInstalamos dois pacotes principais: webpack e webpack-cli (interface de linha de comando).
npm install --save-dev webpack webpack-cli\n\nPasso 3: Instalação do webpack-dev-server (opcional, para desenvolvimento)
\nnpm install --save-dev webpack-dev-server\n\nPasso 4: Instalação de loaders e plugins (exemplo para CSS)
\nnpm install --save-dev style-loader css-loader\n\nApós a instalação, no arquivo package.json aparecerá a seção devDependencies com os pacotes instalados.
Início rápido com exemplo de código
\n\nVamos criar um projeto simples que demonstra o funcionamento básico do Webpack.
\n\nEstrutura do projeto:
\nmy-webpack-project/\n├── dist/ # Pasta para arquivos compilados (criada automaticamente)\n├── src/ # Código fonte\n│ ├── index.js # Ponto de entrada\n│ └── style.css # Estilos\n├── index.html # Arquivo HTML\n├── package.json\n└── webpack.config.js # Configuração do Webpack\n\n1. Criar o arquivo src/index.js:
// src/index.js\nimport './style.css';\n\nfunction greet(name) {\n console.log(`Olá, ${name}!`);\n}\n\ngreet('Webpack');\n\n2. Criar o arquivo src/style.css:
/* src/style.css */\nbody {\n background-color: #f0f0f0;\n font-family: Arial, sans-serif;\n}\n\n3. Criar o arquivo index.html:
<!DOCTYPE html>\n<html lang="pt">\n<head>\n <meta charset="UTF-8">\n <title>Webpack Demo</title>\n</head>\n<body>\n <script src="dist/bundle.js"></script>\n</body>\n</html>