Проверка версии среды выполнения babel-preset-env
babel-preset-env позволяет автоматически определять необходимые полифилы и преобразования, но как он проверяет во время выполнения, действительно ли целевые версии, указанные во время компиляции, действительно доступны.
Допустим, я нацелился на сафари 10, используя
"targets": {
"safari": 10
}
но код запускается на более старой версии сафари.
Как babel-preset-env распознает это или каковы типичные способы решения этой распространенной проблемы?
1 ответ
babel-preset-env
не выполняет никаких проверок во время выполнения. Он включает только те преобразования, которые требуются для указанной среды. Вы эффективно устанавливаете минимальную поддерживаемую среду и отказываетесь от любых преобразований, которые потребуются для поддержки более низких версий.
Например, если все версии браузера, указанные в моей конфигурации, поддерживают классы ES2015, Babel не будет преобразовывать классы в форму, поддерживаемую ES5, поскольку в этом нет необходимости!