Skip to content
Latchkey

O Que É o Browserslist? Uma Config Para Suporte a Navegadores

O Browserslist é um formato de configuração compartilhado que declara quais navegadores o seu projeto suporta, lido por transpiladores, ferramentas de polyfill e o PostCSS igualmente.

Várias ferramentas de build precisam saber quais navegadores você suporta, e repetir isso em cada ferramenta convidaria à divergência. O Browserslist resolve isso com uma única config que toda ferramenta lê. Você escreve consultas descrevendo os navegadores suportados, e as ferramentas as resolvem em uma lista concreta usando dados de uso compartilhados. É o lugar canônico onde um browser target reside.

Como as consultas funcionam

Uma config do Browserslist é um conjunto de consultas como as 2 últimas versões, not dead, ou cobertura acima de um limite. O Browserslist as combina e resolve contra o dataset de uso do caniuse para produzir a lista exata de navegadores.

Quem a lê

  • Babel e outros transpiladores, para escolher a sintaxe a reduzir de nível.
  • Injetores de polyfill, para adicionar apenas os polyfills necessários.
  • Autoprefixer, para adicionar os prefixos CSS corretos.

Onde a config reside

Você pode colocar as consultas em uma chave browserslist no package.json ou em um .browserslistrc dedicado. Mantê-la no repo significa que toda ferramenta e todo desenvolvedor resolvem o mesmo target.

A armadilha da versão dos dados

O Browserslist resolve as consultas usando um banco de dados de uso que se atualiza com o tempo. Dois builds do mesmo código podem diferir se usarem versões diferentes do banco de dados, porque a lista de navegadores resolvida mudou.

O Browserslist no CI/CD

Para builds reprodutíveis no CI, fixe a versão dos dados do caniuse-lite via lockfile e atualize-a deliberadamente. Caso contrário, uma atualização rotineira de dependência pode mudar silenciosamente quais polyfills e prefixos são entregues, mesmo sem alteração de código-fonte. Fixar faz o mesmo commit produzir a mesma saída a cada execução.

Principais conclusões

  • O Browserslist é uma única config compartilhada que muitas ferramentas de build leem para suporte a navegadores.
  • As consultas se resolvem em uma lista concreta de navegadores usando dados de uso.
  • Fixe a versão dos dados de navegadores para que os builds do CI permaneçam reprodutíveis.

Guias relacionados