Зачем мне Babel JS?
Я изо всех сил пытаюсь понять важность Вавилона здесь... Итак, ES6 приходит и дает нам жирные функции стрелок, более короткий синтаксис и т.д., Поэтому зачем нам собирать ES6 в традиционную JS? Это потому, что есть старые браузеры, которые не могут интерпретировать новый синтаксис JS? Или это как-то связано с сохранением исходного кода? Немного о нобе, вопрос, который я знаю, но эй, я ноб! Любое понимание оценили!
Ответы
Ответ 1
Хотя ответы здесь все правильные, Babel - это не только ES6 (ES2015). Комитет по стандартам ECMA согласился выпустить ежегодные обновления языка JavaScript. Бабель всегда будет интегрировать стандарты, тогда как мы не знаем, будут ли все браузеры, и если да, смогут ли они идти в ногу с меняющимися стандартами.
С транспилером, таким как Babel, мы можем оставаться впереди веб-браузеров и использовать новые функции ECMAscript, когда они выпущены, вместо того, чтобы ждать, когда производители браузеров будут интегрировать функции, использовать полисы или что-то еще. Он также позволяет конечному пользователю настраивать функции, которые они хотят использовать, и создавать собственную версию языка.
Чтобы услышать, как создатель Вавилонской беседы об этом, вы можете послушать этот эпизод Jabber в JavaScript.
Ответ 2
Не все браузеры поддерживают ES6. Наряду с перевоплощением таких вещей, как "Реакт".
http://www.webbrowsercompatibility.com/es6/desktop/
Ответ 3
Большинство современных браузеров сегодня имеют почти полную поддержку es6. От 96% до 99% поддержки.
https://kangax.github.io/compat-table/es6/
Главным недостатком являются модули ES6. В настоящее время только Safari поддерживает модули ES6. Поддержка модулей ES6 должна появиться в Google Chrome 60.
Чтобы получить код ES6 для запуска, вам необходимо объединить модули кода ES6 в один файл JavaScript, используя наборщик, такой как Browserify или Webpack. Мне повезло с использованием Webpack 3.0 для комплектации.
Babel несет ответственность за преобразование новых языковых функций в старые.
Вы можете написать код, который будет работать во многих браузерах, используя только связной, но без использования Babel. Вы код становится более запутанным, перетаскивая его с помощью Babel, поэтому вам нужно сделать это только в случае необходимости.
Ответ 4
Вы поняли это правильно. Есть много браузеров, которые не поддерживают/частично поддерживают es6, поэтому вам все равно нужно интерпретировать традиционные js на ближайшие годы. Особенно, когда клиенты жалуются, что ваш сайт не работает в браузере IE6
Ответ 5
Я могу опоздать с ответом на этот вопрос, но главная причина для меня заключается в том, что даже Node версии 12 не поддерживает модульную систему ES6 (ключевые слова импорта и экспорта).
Babel передает синтаксис ES6 в CommonJS, что избавляет от многих головных болей
Ответ 6
Нет оснований использовать Бабеля в моем опыте. Машинопись превосходна во всех отношениях.