Обновить
Это работает, если вы установите цель в Chrome. Но это может не работать для других целей, пожалуйста, обратитесь к: https://github.com/babel/babel-preset-env/issues/112
Так что этот ответ НЕ совсем подходит для исходного вопроса. Я буду держать это здесь как ссылку на babel-preset-env
.
Простое решение - добавить import 'babel-polyfill'
в начале вашего кода.
Если вы используете веб-пакет, быстрое решение - добавить, babel-polyfill
как показано ниже:
entry: {
index: ['babel-polyfill', './index.js']
}
Я полагаю, что нашел последнюю лучшую практику.
Проверьте этот проект: https://github.com/babel/babel-preset-env
yarn add --dev babel-preset-env
Используйте следующую конфигурацию вашего babel:
{
"presets": [
["env", {
"targets": {
"browsers": ["last 2 Chrome versions"]
}
}]
]
}
Тогда ваше приложение должно хорошо работать в последних 2 версиях браузера Chrome.
Вы также можете установить Node в качестве цели или настроить список браузеров в соответствии с https://github.com/ai/browserslist.
Скажи мне что, не говори мне как.
Мне действительно нравится babel-preset-env
философия: скажи мне, какую среду ты хочешь поддерживать, НЕ говори мне, как их поддерживать. Это красота декларативного программирования.
Я проверил, async
await
и они работают. Я не знаю, как они работают, и я действительно не хочу знать. Вместо этого я хочу тратить свое время на собственный код и свою бизнес-логику. Благодаря babel-preset-env
, это освобождает меня от адской конфигурации Вавилона.