2.7 KiB
2.7 KiB
@advdominion/browserslist-to-targets
Преобразует конфиг browserslist в массив target-строк, совместимый с esbuild и Oxc.
Зачем
Оба инструмента (esbuild и Oxc) понимают ограниченный набор целевых браузеров, который отличается от browserslist. Пакет приводит результат browserslist() к короткому esbuild-формату: ["chrome109", "ios18.5"], а всё, что esbuild/Oxc не поддерживает (and_chr, kaios, samsung и т.д.) — отбрасывает.
Установка
yarn add -D @advdominion/browserslist-to-targets
Использование
import browserslist from 'browserslist';
import { browserslistToTargets } from '@advdominion/browserslist-to-targets';
const targets = browserslistToTargets(browserslist());
// ["chrome109", "edge149", "firefox140", "ios18.5", "opera127", "safari26.5"]
API
browserslistToTargets(browsers): string[]
browsers— массив строк отbrowserslist(), например["chrome 151", "ios_saf 26.6"].- Возвращает массив target-строк без пробела:
["chrome151", "ios26.5"].
Правила преобразования
| browserslist | esbuild/Oxc | Примечание |
|---|---|---|
chrome 151 |
chrome151 |
версия становится «приклеенной» к имени |
ios_saf 26.6 |
ios26.5 |
ios_saf → ios, остаётся самая старая |
ios_saf 25-26.5 |
ios25 |
ios_saf → ios, диапазон → нижняя граница |
android 151 |
chrome151 |
android → chrome |
ios 26.0 |
ios26 |
убирает завершающий .0 |
and_chr, kaios, samsung, op_mob, and_ff |
— отбрасывается | нет в esbuild/Oxc |
Для каждого браузера остаётся самая старая версия — трансформации покрывают самую консервативную цель.
Лицензия
MIT