Как подробно here - модули ES6 имеют два аспекта:
Стандартный модуль ES6 имеет две части:
- декларативного синтаксиса (для импорта и экспорта)
- ПРОГРАММНЫЕ-погрузчик API: для настройки загрузки модулей и условной нагрузки модули
Вавилон обрабатывает только первый аспект - т.е. декларативный синтаксис для импорта и экспорта и не предоставляет свой собственный загрузчик.
То, что люди, использующие модули ES6 сегодня делают, как правило, один из следующих:
- Использование Бабель для transpile ES6 модулей синтаксис для существующей реализации модуля, как CommonJS/AMD и соответственно доступный инструмент, как Webpack/browserify/requirejs можно использовать для загрузки/объединения js-активов.
- В качестве альтернативы есть такие погрузчики, как SystemJS, которые обеспечивают поддержку API-интерфейса загрузчика программ (через ES6 module loader polyfill. Используя этот инструмент, вы можете избавиться от Browserify/Webpack, но на данный момент вы просто меняете один инструмент на другой. что все больше и больше библиотек, таких как модули ES6 Aurelia жмутся и рекомендовать стандартизированный
System.import
синтаксиса -. SystemJS будет парить в популярности
Другого аспектом является совместимостью с существующей экосистемой модулей (особенно на НОМ) Следует отметить, что. вы не теряете совместимость с существующей экосистемой с любой из стратегий: и webpack, и SystemJS позволяют загружать и связывать commonjs как а также модули AMD.
Что касается связывания активов, то постоянная поддержка соединений в HTTP 2 уже заметно уменьшает значение конкатенации файлов javascript. Хотя устранение мертвого кода после обнуления полного пакета javascript по-прежнему остается ценной оптимизацией.
Как неоднократно указывали авторы инструментов, такие как Rollup, статически анализируемый характер модулей ES6 делает дробление и уничтожение кода более эффективным.
Модули ES6 определяют синтаксис. Browserify/Webpack, чтобы заставить их работать в браузерах (особенно старых). Они * работают вместе * и не могут заменить друг друга. – Bergi