intermediate
Babel
Преобразуйте синтаксис JavaScript через plugins и presets, понимая polyfills, targets и runtime helpers.
Babel преобразует синтаксис JavaScript через presets и plugins. `@babel/preset-env` нацеливает browser или Node; plugins добавляют JSX, синтаксис TypeScript, decorators или instrumentation.
{
"presets": [["@babel/preset-env", { "targets": "defaults" }]],
"plugins": ["@babel/plugin-transform-runtime"]
}
Важна стратегия polyfill: `useBuiltIns` с `core-js` vs runtime helpers через `@babel/plugin-transform-runtime`. Библиотеки не должны пачкать глобальные прототипы.
На интервью: targets preset-env, polyfill vs runtime helpers, порядок plugins, TypeScript+Babel всё равно требует `tsc`, custom transform для codemods.
Типовые ошибки: лишний transpile современного синтаксиса; глобальные polyfills в библиотеках; длинные цепочки plugins в CI.
Компромисс — гибкость transform против времени compile и сложности конфига.
Чеклист:
- Явные targets.
- Осознанная стратегия polyfill.
- Transpile ≠ bundling.
- Минимальный документированный набор plugins.