Как создать ES6-модуль, который не вызывает ошибок в старых браузерах? - PullRequest
0 голосов
/ 05 октября 2018

В моем js-файле есть следующее утверждение, которое позволяет браузерам, поддерживающим ES6, импортировать функцию "cisf" из файла, в котором она содержится:

export function cisf ()
{ return 123;
}

Однако я предполагаю, что приведенное выше вызовет ошибки нанекоторые старые браузеры.Не так ли?

Есть ли способ сделать оператор экспорта ES6 условным, чтобы он не вызывал ошибок в старых браузерах, но позволял загружать код в виде модуля ES6 новыми браузерами?

Меня интересует только то, чтобы я не вызывал ошибок в (относительно недавних) не совместимых с ES6 браузерах, а не в том, как старые браузеры получали бы доступ к одному и тому же коду, потому что они могут получить его до версии ES6,

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

РЕДАКТИРОВАТЬ: Я хотел бы знать, можно ли это сделать без Babel и / или WebPack или аналогичного, в простом Javascript.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я предполагаю, что приведенное выше может вызвать ошибки в некоторых старых браузерах.Не так ли?

Нет, не будет.Старые браузеры не понимают <script type="module"> и не будут пытаться его выполнить.Это просто игнорируется как любой скрипт с неизвестным типом.Там не будет ошибки, просто ничего не будет.

0 голосов
/ 05 октября 2018

Нет абсолютно никакого способа создать модуль (или написать код) в ES6 / ES7 без переноса его в ES5, который бы работал в старых браузерах.Вы должны использовать Babel для компиляции кода.Даже не тратьте свое время на поиски решения.

Причина в том, что старые браузеры не понимают новый синтаксис ES6 / ES7, точка.

Вы должны отправить свой окончательный пакетный кодES5 как лучшая отраслевая практика (по крайней мере, пока у всех старых браузеров больше не будет пользователей)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...