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.