Трансляция JS
От: Михaил  
Дата: 11.11.19 11:45
Оценка:
Привет

Такой вопрос:
Есть несколько .js файлов от стороннего разработчика, и они имеют строки:

import { Container, Draggable } from 'somejsfile'
import { applyDrag, generateItems } from 'anotherjsfile'

Насколько я понимаю, эти новомодные import-ы не поддерживаются мало мальски старыми браузерами (речь даже не об IE, а, например, последняя Safari ругается в консоли на такие записи).
как и чем можно переконвертировать такие файлы в "понятные" браузерам скрипты? Я так понимаю, эти новомодные вещи используются, чтоб хоть как-то решить проблему малоподдерживаемого гв. кода на JS и разбивать его на более-менее поддерживаемые компоненты?
Re: Трансляция JS
От: s_aa Россия  
Дата: 11.11.19 12:00
Оценка: 1 (1)
М>Насколько я понимаю, эти новомодные import-ы не поддерживаются мало мальски старыми браузерами (речь даже не об IE, а, например, последняя Safari ругается в консоли на такие записи).
М>как и чем можно переконвертировать такие файлы в "понятные" браузерам скрипты? Я так понимаю, эти новомодные вещи используются, чтоб хоть как-то решить проблему малоподдерживаемого гв. кода на JS и разбивать его на более-менее поддерживаемые компоненты?

Эти файлы скармливаются какому-нибудь сборщику типа Webpack, который делает из них 1 файл понятный всем браузерам.
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re: Трансляция JS
От: RushDevion Россия  
Дата: 11.11.19 12:09
Оценка:
Здравствуйте, Михaил, Вы писали:

М>Привет


М>Такой вопрос:

М>Есть несколько .js файлов от стороннего разработчика, и они имеют строки:

М>import { Container, Draggable } from 'somejsfile'

М>import { applyDrag, generateItems } from 'anotherjsfile'

М>Насколько я понимаю, эти новомодные import-ы не поддерживаются мало мальски старыми браузерами (речь даже не об IE, а, например, последняя Safari ругается в консоли на такие записи).

Да, это появилось в ECMAScript 2015.

М>как и чем можно переконвертировать такие файлы в "понятные" браузерам скрипты?

Обычно это делают при сборке приложения (e.g. через babel, gulp, grunt, webpack) как отдельный шаг, который конвертит в нужный формат и (опционально) склеивает файлы в один/несколько бандлов.
Также, если не ошибаюсь, Babel можно загрузить как внешнюю библиотеку и получить реалтайм транспайлинг в любом браузере (разумеется, будет медленнее).
Еще можно посмотреть requirejs и подобные загрузчики, возможно кто-то из них умеет транспайлить на лету.

M>Я так понимаю, эти новомодные вещи используются, чтоб хоть как-то решить проблему малоподдерживаемого гв. кода на JS и разбивать его на более-менее поддерживаемые компоненты?

Да, это попытка как-то стандартизировать подход к модульности.
Re: Трансляция JS
От: DTB Россия  
Дата: 12.11.19 10:14
Оценка:
Здравствуйте, Михaил, Вы писали:

М>Привет


М>Такой вопрос:

М>Есть несколько .js файлов от стороннего разработчика, и они имеют строки:

М>import { Container, Draggable } from 'somejsfile'

М>import { applyDrag, generateItems } from 'anotherjsfile'

М>Насколько я понимаю, эти новомодные import-ы не поддерживаются мало мальски старыми браузерами (речь даже не об IE, а, например, последняя Safari ругается в консоли на такие записи).

М>как и чем можно переконвертировать такие файлы в "понятные" браузерам скрипты? Я так понимаю, эти новомодные вещи используются, чтоб хоть как-то решить проблему малоподдерживаемого гв. кода на JS и разбивать его на более-менее поддерживаемые компоненты?

называется это не трансляцией, а транспиляцией. самый известный для JS — Babel
Have fun...
Re: Трансляция JS
От: GarryIV  
Дата: 26.11.19 18:00
Оценка: +1
Здравствуйте, Михaил, Вы писали:

М>как и чем можно переконвертировать такие файлы в "понятные" браузерам скрипты? Я так понимаю, эти новомодные вещи используются, чтоб хоть как-то решить проблему малоподдерживаемого гв. кода на JS и разбивать его на более-менее поддерживаемые компоненты?


Модулям сто лет в обед (см require)

ЗЫЖ Конвертировать, как уже сказали, надо Babel.
WBR, Igor Evgrafov
Отредактировано 26.11.2019 20:22 GarryIV . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.