2016-11-28 5 views
1

У меня есть довольно большое приложение, прямо сейчас около 5mb для app.js и 1mb + в js поставщика. Я предполагаю, что он пересечет 10 мб, наши целевые пользователи находятся на медленном интернета, и каждый пользователь имеет разные права, поэтому большинство компонентов недоступны для пользователя.Как настроить ember-cli build для исключения исходного кода concat

Я думал об исключении некоторых крупных компонентов из процесса сборки и загрузки их по требованию. До сих пор мне понравилась эта идея https://github.com/Cryrivers/ember-remote-component/blob/master/app/components/remote-component.js, где он проверяет, если загружен компонент, если не затем загрузить их с помощью AJAX

что-то вроде

if(!container.hasRegistration(`component:${ componentName }`)){ 
    $.when(
     $.getScript(`/remote-components/${ componentName }/component.js`), 
     $.getScript(`/remote-components/${ componentName }/template.js`) 
    ).done(()=> { 
     let container = getOwner(this); 
     container.register(`component:${ componentName }`, require(`${ ENV.modulePrefix }/components/${ componentName }`).default, {singleton: false}); 
     this.set('isLoaded', true); 
    }) 
} 

Я думаю, что это может работать. Но вот два вопроса

A: Как исключить компонент из процесса сборки, и остановить его от конкатенации, но и держать их в /DIST/компонентах/а/ папку

B: Разделить шаблон template.hbs на template.js для этого компонента как компиляцию шаблона после загрузки через AJAX вызовет огромную производительность.

ответ

3

Это не точное решение ОП ищет, но я думаю, что это лучше, долгосрочное решение:

Я думаю, что ленивые нагруженных двигателей может быть лучше подойти к этой проблеме. https://github.com/dgeb/ember-engines

Вы можете предотвратить загрузку большинства ваших приложений для большинства пользователей.

Экспериментальная поддержка для ленивой загрузки доступна в мастер-ветке согласно README проекта.

+0

Да, спасибо, что он приземлился в 2.10 и, надеюсь, в версии 2.12 LTS. Я буду обновлять его до тех пор ... Спасибо –