Конкатенация модуль на ES6
Разработка веб-проекта в в JavaScript ES6 в, в настоящее время я использую Трейсер скомпилировать мои модули от ES6 до ES5, думая, что в будущем, когда браузер будет поддерживать ES6, я смогу пропустить этот шаг транспиляции.
в конце концов, потому что я не хочу загружать несколько частей js при запуске, у меня есть один файл, который содержит все мои модули, преобразованные в ES5, благодаря Traceur.
но чтобы подтвердить этот выбор, я был интересно, возможно ли это в тот день, когда я сохраню источник в ES6. Если я просто объединю их, возникнут недопустимые конфликты импорта и имен.
похоже, что он не был разработан для этого, и для их правильного объединения потребуется дополнительный шаг обработки.
Как мы должны обрабатывать проект ES6 с одним файлом, определенный несколькими модулями ?
3 ответов
Это будет решено путем связывания, как описано здесь:http://www.2ality.com/2013/11/es6-modules-browsers.html в главе 3. Таким образом, это возможно и проверить ваш подход, хотя я не смог найти реализацию соответствующего шага компиляции в интернете, но это должно возникнуть, когда люди начнут использовать модули ES6.
в ближайшем будущем больше не будет необходимости создавать проект с одним файлом благодаря HTTP/2
.
посмотреть: Почему оптимизация пакетов больше не является проблемой в HTTP / 2
лучшим решением, вероятно, будет использовать browserify чтобы объединить ваш транспилированный код в один файл. Затем я бы использовал Uglify или компилятор закрытия Google для минимизации файла, учитывая небольшие накладные расходы на размер, учитывая все импорт / экспорт, с которыми нужно иметь дело.
кроме того, если вы хотите использовать Babel вместо Traceur, есть плагин Babel для browserify, чтобы сделать все очень просто.