09.03.2021, 18:15
|
|
Интересующийся
|
|
Регистрация: 09.06.2014
Сообщений: 28
|
|
Babel (ES5/ES6)
Ребята, вопрос скорее по смыслу использования новых стандартов против старых.
Большинство требований в проектах включают в себя использование ES6, при этом указано, что в проектах используется Babel, т.е. в проектах перегоняют весь код в ES5. Я не понимаю, какой смысл тогда писать по новым стандартам ES6, если всё равно на выходе будет ES5, который будет поддерживаться старыми браузерами, т.е. на сайте будет минифицированный .js с ES5.
Мне было бы понятно, если бы, например старому браузеру отдается .js с ES5, а новым .js с ES6 (видимо на уровне фантастики), но тут всё в один .js для всех.
Поясните пожалуйста!
|
|
09.03.2021, 19:33
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
Идиотизм заказчика.
Я не вижу ни одной причины, по которой нельзя использовать новый браузер для общедоступного сайта.
Единственная просматриваемая ситуация - внутрикорпоративный сайт, заточенный под ИЕ, использующий какие то ActiveX.
Ну так можно для этого сайта использовать ИЕ, а для остальной сети нормальные браузеры.
|
|
09.03.2021, 21:01
|
|
Интересующийся
|
|
Регистрация: 09.06.2014
Сообщений: 28
|
|
voraa, ну вот я тоже подумал о внутрикорпоративном использование, когда команда разработчиков пишет в ES6, а на рабочую версию сайта(build) подключают .js, заранее прогоняя весь js-код через Babel, это видимо единственное объяснение, хоть и немного для меня странное, мол...требование писать ES6, но в рабочей версии будет ES5.
|
|
10.03.2021, 07:08
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
TS и ES6 Бабелем переведут в ES5 как то.
А с современным CSS что делать? И нафига его придумывают, если все равно все разработчики должны думать про ИЕ?
Наверно никто не использует.
|
|
10.03.2021, 08:44
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Сообщение от Kiano
|
Поясните пожалуйста!
|
Если всякие там проекты делаются на долго... Лучше сразу писать их на том варианте, какой будет работать и дальше.
А "переработчик" на данный момент просто помогает в "адаптации" нового стандарта на старом ПО.
Т.е. по прошествии времени "переработку" просто отменят и "поплывут под новыми парусами в светлое будущее"!
Обратное действие будет, скорее всего, не возможным.
|
|
10.03.2021, 09:43
|
|
Профессор
|
|
Регистрация: 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/
|
|
10.03.2021, 16:18
|
|
Интересующийся
|
|
Регистрация: 09.06.2014
Сообщений: 28
|
|
destus, спасибо, что нужно! На Gulp собираю, попробую через babel-preset-env два файла организовать и далее как в статье на хабре.
|
|
10.03.2021, 16:25
|
|
Интересующийся
|
|
Регистрация: 09.06.2014
Сообщений: 28
|
|
Сообщение от voraa
|
А с современным CSS что делать?
|
Если нужно на проекте поддержка старых браузеров, то для старых браузеров выводится отдельный .css, для новых браузеров другой .css, скрипт определяет версию браузера и подключает нужный файл стилей. Давно уже так делаю, а так конечно скорей бы весь этот бред с древними динозаврами браузерами ушёл в прошлую эпоху.
|
|
10.03.2021, 18:03
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
Сообщение от Kiano
|
Если нужно на проекте поддержка старых браузеров, то для старых браузеров выводится отдельный .css, для новых браузеров другой .css
|
И как в этом css для старых браузеров заменить необходимые возможности, которых нет? Если бы они были, то наверно и новые были бы не очень нужны.
Чем заменить :focus-within ?
А ведь возможности css не только в файлах css, но и в скриптах используются.
Чем заменить .querySelector('div:focus-within') или elem.querySelectorAll(':scope>div.anyclass')?
Вряд ли бабель тут справится. Т.е скрипты тоже надо писать в этом случае под старые браузеры.
Удобные возможности есть, но пользоваться ими нельзя.
Зачем же их сделали тогда?
|
|
10.03.2021, 18:44
|
|
Интересующийся
|
|
Регистрация: 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 разработчики сами себе усложняют жизнь, создавая какое-то невероятное кол-во софта, а может просто усложняют порог входа в эту профессию.
|
|
|
|