O Que É um Build Target? Escolhendo o Ambiente de Saída
Um build target informa à ferramenta de build em qual ambiente a saída deve rodar, para que ela saiba quais recursos usar e quais rebaixar de nível.
O mesmo código-fonte pode compilar em saídas muito diferentes dependendo de onde ele vai rodar. Um build target captura esse destino: uma versão de JavaScript, um runtime como browser ou Node, ou um conjunto de navegadores. O target orienta o quão agressivamente o build transpila e quais recursos ele pode assumir, e fixá-lo é o que mantém a saída de CI consistente.
O que um target controla
- Qual nível de sintaxe de JavaScript a saída usa.
- Se deve emitir para browsers, Node ou ambos.
- Quais APIs o build pode assumir que existem.
Target e transpilação
Um target mais alto, como uma versão recente de JS, significa menos rebaixamento de nível e uma saída menor e mais rápida. Um target mais baixo significa mais transpilação e polyfills para suportar ambientes mais antigos. O target é o botão de ajuste entre saída moderna e amplo suporte.
Target de browser vs target de runtime
Um target de runtime escolhe o comportamento de browser versus Node. Um target de browser restringe a versões específicas de navegadores, geralmente por meio de uma lista de suporte a navegadores. Ambos informam o build, e projetos de frontend frequentemente definem os dois.
Targets de biblioteca vs de aplicação
Aplicações têm como target os ambientes que seus usuários rodam. Bibliotecas geralmente têm como target algo amplo e deixam o rebaixamento final de nível para a aplicação consumidora, para que não forcem um nível específico sobre todos que as instalam.
Build targets em CI/CD
Como o target muda a saída, fixá-lo em uma config commitada mantém o CI reproduzível: o mesmo commit sempre emite para o mesmo ambiente. Um drift de target entre local e CI é uma causa comum de funciona-localmente-falha-em-produção, então o target vive no repositório, não na máquina de um desenvolvedor.
Principais conclusões
- Um build target define o ambiente e o nível de recursos que a saída deve suportar.
- Ele é o botão de ajuste entre saída moderna e menor e ampla compatibilidade.
- Fixar o target em uma config commitada mantém os builds de CI reproduzíveis.