Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2021, 18:15
Аватар для Kiano
Интересующийся
Отправить личное сообщение для Kiano Посмотреть профиль Найти все сообщения от Kiano
 
Регистрация: 09.06.2014
Сообщений: 28

Babel (ES5/ES6)
Ребята, вопрос скорее по смыслу использования новых стандартов против старых.

Большинство требований в проектах включают в себя использование ES6, при этом указано, что в проектах используется Babel, т.е. в проектах перегоняют весь код в ES5. Я не понимаю, какой смысл тогда писать по новым стандартам ES6, если всё равно на выходе будет ES5, который будет поддерживаться старыми браузерами, т.е. на сайте будет минифицированный .js с ES5.

Мне было бы понятно, если бы, например старому браузеру отдается .js с ES5, а новым .js с ES6 (видимо на уровне фантастики), но тут всё в один .js для всех.

Поясните пожалуйста!
Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2021, 19:33
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Идиотизм заказчика.
Я не вижу ни одной причины, по которой нельзя использовать новый браузер для общедоступного сайта.
Единственная просматриваемая ситуация - внутрикорпоративный сайт, заточенный под ИЕ, использующий какие то ActiveX.
Ну так можно для этого сайта использовать ИЕ, а для остальной сети нормальные браузеры.
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2021, 21:01
Аватар для Kiano
Интересующийся
Отправить личное сообщение для Kiano Посмотреть профиль Найти все сообщения от Kiano
 
Регистрация: 09.06.2014
Сообщений: 28

voraa, ну вот я тоже подумал о внутрикорпоративном использование, когда команда разработчиков пишет в ES6, а на рабочую версию сайта(build) подключают .js, заранее прогоняя весь js-код через Babel, это видимо единственное объяснение, хоть и немного для меня странное, мол...требование писать ES6, но в рабочей версии будет ES5.
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2021, 07:08
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

TS и ES6 Бабелем переведут в ES5 как то.
А с современным CSS что делать? И нафига его придумывают, если все равно все разработчики должны думать про ИЕ?
Наверно никто не использует.
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2021, 08:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от Kiano
Поясните пожалуйста!
Если всякие там проекты делаются на долго... Лучше сразу писать их на том варианте, какой будет работать и дальше.
А "переработчик" на данный момент просто помогает в "адаптации" нового стандарта на старом ПО.
Т.е. по прошествии времени "переработку" просто отменят и "поплывут под новыми парусами в светлое будущее"!

Обратное действие будет, скорее всего, не возможным.
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2021, 09:43
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
Мне было бы понятно, если бы, например старому браузеру отдается .js с ES5, а новым .js с ES6 (видимо на уровне фантастики)
Именно так и делают в современном мире. В Angular, например, через сравнение target в tsconfig.json и списком поддерживаемых браузеров в .browserslistrc. Похожее поведение есть и во Vue CLI (https://cli.vuejs.org/guide/browser-...ml#modern-mode)

https://habr.com/ru/post/338612/
Ответить с цитированием
  #7 (permalink)  
Старый 10.03.2021, 16:18
Аватар для Kiano
Интересующийся
Отправить личное сообщение для Kiano Посмотреть профиль Найти все сообщения от Kiano
 
Регистрация: 09.06.2014
Сообщений: 28

destus, спасибо, что нужно! На Gulp собираю, попробую через babel-preset-env два файла организовать и далее как в статье на хабре.
Ответить с цитированием
  #8 (permalink)  
Старый 10.03.2021, 16:25
Аватар для Kiano
Интересующийся
Отправить личное сообщение для Kiano Посмотреть профиль Найти все сообщения от Kiano
 
Регистрация: 09.06.2014
Сообщений: 28

Сообщение от voraa Посмотреть сообщение
А с современным CSS что делать?
Если нужно на проекте поддержка старых браузеров, то для старых браузеров выводится отдельный .css, для новых браузеров другой .css, скрипт определяет версию браузера и подключает нужный файл стилей. Давно уже так делаю, а так конечно скорей бы весь этот бред с древними динозаврами браузерами ушёл в прошлую эпоху.
Ответить с цитированием
  #9 (permalink)  
Старый 10.03.2021, 18:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от Kiano
Если нужно на проекте поддержка старых браузеров, то для старых браузеров выводится отдельный .css, для новых браузеров другой .css
И как в этом css для старых браузеров заменить необходимые возможности, которых нет? Если бы они были, то наверно и новые были бы не очень нужны.
Чем заменить :focus-within ?
А ведь возможности css не только в файлах css, но и в скриптах используются.
Чем заменить .querySelector('div:focus-within') или elem.querySelectorAll(':scope>div.anyclass')?

Вряд ли бабель тут справится. Т.е скрипты тоже надо писать в этом случае под старые браузеры.
Удобные возможности есть, но пользоваться ими нельзя.
Зачем же их сделали тогда?
Ответить с цитированием
  #10 (permalink)  
Старый 10.03.2021, 18:44
Аватар для Kiano
Интересующийся
Отправить личное сообщение для Kiano Посмотреть профиль Найти все сообщения от Kiano
 
Регистрация: 09.06.2014
Сообщений: 28

Сообщение от voraa Посмотреть сообщение
И как в этом css для старых браузеров заменить необходимые возможности, которых нет? Если бы они были, то наверно и новые были бы не очень нужны.
Если речь, например о flex или grid, то подключается PostCSS c плагином autoprefixer - https://www.npmjs.com/package/autoprefixer

Сообщение от voraa Посмотреть сообщение
Чем заменить :focus-within ?
А ведь возможности css не только в файлах css, но и в скриптах используются.
Чем заменить .querySelector('div:focus-within') или elem.querySelectorAll(':scope>div.anyclass')?
Здесь нужно смотреть в сторону Polyfill вместе с Babel.

Все это конечно выглядит очень громоздко! Мне порой кажется, что front-end разработчики сами себе усложняют жизнь, создавая какое-то невероятное кол-во софта, а может просто усложняют порог входа в эту профессию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
babel не запускается в командной строке magnuz Node.JS 2 16.01.2019 19:22
JS, babel и IE: быть или не быть нормальным скриптам? DVV Элементы интерфейса 3 12.09.2018 15:17
Ошибка при установке babel DVV Элементы интерфейса 0 01.09.2018 14:07
декораторы es7 babel skrudjmakdak Общие вопросы Javascript 1 30.11.2015 14:53
Gulp watcher и Babel. Как компилировать только измененный файл? FINoM Оффтопик 9 27.09.2015 21:04