Конфигурирование Babel
Дата обновления перевода 2024-07-25
Конфигурирование Babel
Babel автоматически конфигурируется для всех файлов .js и .jsx через
babel-loader с благоразумными значениями по умолчанию (например, с
@babel/preset-env и @babel/preset-react, по запросу).
Вам нужно ещё больше расширить конфигурацию Babel? Самый лёгкий способ сделать это -
через configureBabel():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// webpack.config.js
// ...
Encore
// ...
.configureBabel(function(babelConfig) {
// добавить дополнительные пресеты
babelConfig.presets.push('@babel/preset-flow');
// по умолчанию плагины не добавляются, но вы можете их добавить
babelConfig.plugins.push('styled-jsx/babel');
}, {
// node_modules не обрабатывается через Babel по умолчанию,
// но вы можете позволить обработку каких-то конкретных модулей
includeNodeModules: ['foundation-sites'],
// или полностью контролировать правило исключения (заметьте, что вы не
// можете использовать "includeNodeModules" и "exclude" одновременно)
exclude: /bower_components/
})
;
Конфигурация целей браузера
Пресет @babel/preset-env переписывает ваш JavaScript, чтобы финальный синтаксис
работал в любом браузере, который вы захотите. Чтобы сконфигурировать браузеры, которые
вам нужно поддерживать, см. .
После изменения вашей конфигурации "browserslist", вам понадобится вручную удалить каталог кеша babel:
1 2
# В Unix запустите эту команду. В Windows, очистите этот каталог вручную
$ rm -rf node_modules/.cache/babel-loader/
Если вы хотите настроить конфигурацию preset-env, используйте метод configureBabelPresetEnv(),
чтобы добавить любые из опций конфигурации @babel/preset-env:
1 2 3 4 5 6 7 8 9 10 11
// webpack.config.js
// ...
Encore
// ...
.configureBabelPresetEnv((config) => {
config.useBuiltIns = 'usage';
config.corejs = 3;
})
;
Создание файла .babelrc
Вместо того, чтобы вызывать configureBabel(), вы можете создать файл .babelrc
в корне вашего проекта. Это более "стандартный" способ конфигурации Babel, но у него
есть недостатки: как только появляется файл .babelrc, Encore больше не может
добавлять никакую конфигурацию Babel для вас. Например, если вы вызовете
Encore.enableReactPreset(), предустановка react не будет автоматически
добавлена в Babel: вы должны будете добавить её сами в .babelrc.
Как только файл .babelrc будет существовать, он будет главенствовать над
конфигурацией Babel, добавленной Encore.