2014-11-06 3 views
8

Разработка веб-проект в JavaScript ES6, я в настоящее время использую Traceur компилировать свои модули из ES6 в ES5, полагая, что в будущем, когда браузер будет поддерживать ES6, я смог бы пропустить этот шаг transpilation ,ES6 модуль конкатенация

В конце концов, поскольку я не хочу загружать несколько частей js при запуске, у меня есть один файл, содержащий все мои модули, преобразованные в ES5, благодаря Traceur.

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

Похоже, что он не был предназначен для этого, и для его правильного объединения потребуется дополнительный шаг обработки.

Как мы можем относиться к одному файловому проекту ES6, определенному несколькими модулями?

+0

возможно дубликат [? Как сцепить ES6 модули] (http://stackoverflow.com/q/27488485/1048572), также [Соединить импорта в модулях в babeljs] (HTTP : //stackoverflow.com/q/31015250/1048572) – Bergi

ответ

4

Это будет устранено путем связывания, как описано здесь: http://www.2ality.com/2013/11/es6-modules-browsers.html в главе 3. Так что это возможно и подтвердите свой подход, хотя я не смог найти реализацию соответствующего этапа компиляции в Интернете, но он должен возникают, когда люди начинают использовать модули ES6.

0

Лучшим решением, вероятно, будет использование browserify, чтобы связать ваш преобразованный код в один файл. Затем я использую uglify или Google Closure Compiler для минимизации файла, учитывая, что накладные расходы незначительны, учитывая все импорт/экспорт, с которыми нужно иметь дело.

Кроме того, если вы хотите использовать Babel вместо Traceur, есть плагин Babel для браузера, чтобы сделать вещи очень легкими.

Смежные вопросы