Skip to content

Commit 32b5946

Browse files
authored
[2026-03-27] Czy wiesz, czym jest i jak działa Browserslist? (#278)
1 parent ed2f5f0 commit 32b5946

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
layout: post
3+
title: "Czy wiesz, czym jest i jak działa Browserslist?"
4+
date: 2026-03-27T08:00:00+01:00
5+
published: true
6+
didyouknow: true
7+
lang: pl
8+
author: pgrobelny
9+
image: /assets/img/posts/2026-03-27-czy-wiesz-czym-jest-i-jak-działa-browserslist/thumbnail.webp
10+
description: "Od czasu do czasu każda osoba pracująca nad frontendem natrafia na plik o nazwie `browserslist`. Kto z niego korzysta i na co wpływają dokonywane w nim zmiany?"
11+
tags:
12+
- frontend
13+
- javascript
14+
- angular
15+
---
16+
17+
Od czasu do czasu każda osoba pracująca nad frontendem natrafia na plik o nazwie `browserslist`, który jest mało intuicyjny.
18+
Na pierwszy rzut oka jego zawartość jest czytelna, ale pojawia się pytanie: po co on właściwie istnieje?
19+
Kto z niego korzysta i jakie skutki mają wprowadzane w nim zmiany?
20+
21+
## Czym jest Browserslist?
22+
Browserslist to **konfiguracja**, z której czytają inne narzędzia i na jej podstawie podejmują decyzje najczęściej związane z **etapem kompilacji**.
23+
Na przykład:
24+
- jakie polyfille zastosować,
25+
- jaka wersja JS będzie „bezpieczna”,
26+
- które prefiksy dodać do CSS (np. `-webkit-`, `-moz-`).
27+
28+
Sam Browserslist jest tylko biblioteką, która czyta informacje z caniuse, a następnie przekazuje je dalej do innych narzędzi,
29+
które ich potrzebują.
30+
31+
## Przykładowy plik browserslist
32+
Przejdźmy teraz do tego, jak wygląda przykładowy plik konfiguracyjny i omówmy sobie, z czego się składa.
33+
Poniżej znajduje się przykład konfiguracji z często spotykanymi parametrami:
34+
35+
```text
36+
last 2 versions
37+
> 0.5%
38+
Firefox ESR
39+
not dead
40+
last 5 iOS major versions
41+
```
42+
43+
Każda linia pliku to informacja o wspieraniu lub niewspieraniu konkretnych urządzeń i przeglądarek.
44+
45+
## Omówienie linia po linii
46+
Przejdźmy przez każdy z wpisów i wyjaśnijmy, co on oznacza:
47+
48+
### last 2 versions
49+
Są to dwie ostatnie wersje każdej wspieranej przeglądarki. Dla Google Chrome oznacza to aktualnie wersje 144 i 143.
50+
### > 0.5%
51+
Przeglądarki z ponad 0,5% udziału w rynku.
52+
Informacje o rynku pochodzą z różnych źródeł, są agregowane i przygotowywane później przez caniuse i następnie udostępniane.
53+
### Firefox ESR
54+
Najnowsza wersja Firefox Extended Support Release.
55+
### not dead
56+
Wyklucza przeglądarki, które nie były aktualizowane przez ostatnie dwa lata.
57+
### last 5 iOS major versions
58+
Wyklucza wszystko z wyjątkiem 5 ostatnich wersji systemu iOS, czyli od 15 do 26, uwzględniając przeskoki w numeracji kolejnych wersji.
59+
Jeżeli nie umieścilibyśmy tej informacji w parametrze major (last 5 iOS major versions), to wynikiem byłyby wersje: 26.2, 26.1, 26.0, 18.7, 18.6.
60+
## Angular 20 i plik .browserslistrc
61+
62+
Warto jeszcze wspomnieć o tym, że od wersji Angulara 20 pojawił się nowy plik o nazwie `.browserslistrc`, który pełni podobną funkcję.
63+
Jest on jednak bardziej szczegółowy i zwykle polega na określaniu **konkretnych wersji przeglądarek**,
64+
żeby lepiej panować nad stabilnością i powtarzalnością buildów.
65+
66+
W praktyce Angular najpierw próbuje znaleźć `.browserslistrc`, a jeśli go nie ma,
67+
próbuje skorzystać z konfiguracji `browserslist`.
68+
69+
## Gdzie szukać więcej (dokumentacja)
70+
- [Składnia i przykłady konfiguracji](https://github.com/browserslist/browserslist)
71+
- [Biblioteka Browserslist (npm)](https://www.npmjs.com/package/browserslist)
72+
- [Dane Can I Use (caniuse-lite)](https://www.npmjs.com/package/caniuse-lite)
38.3 KB
Loading

0 commit comments

Comments
 (0)