Files
frontend/packages/browserslist-to-targets/README.md
2026-09-08 23:23:10 +04:00

2.7 KiB
Raw Blame History

@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