我有一个相当大的应用程序,现在约5mb用于app.js和1mb +供应商js。我认为它将跨越10MB,我们的目标用户在慢速上网,并且每个用户有不同的权利,因此大多数组件对用户不可用。如何定制ember-cli构建以排除源代码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);
})
}
我认为这是可行的。但这里有两个问题
答:如何排除从构建过程的组成部分,并从串联停止,但也让他们在/距离/组件/ ABC/文件夹
B:在通过AJAX加载后编译模板时,将该组件的template.hbs单独编译为template.js将导致巨大的性能问题。
是的,感谢它已经降落在2.10和希望在2.12 LTS版本。那个时候我会更新到引擎...谢谢 –