У меня есть довольно большое приложение, прямо сейчас около 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 вызовет огромную производительность.
Да, спасибо, что он приземлился в 2.10 и, надеюсь, в версии 2.12 LTS. Я буду обновлять его до тех пор ... Спасибо –