懒加载Aurelia插件

J-D*_*awG 9 javascript single-page-application aurelia aurelia-framework

我有一个大插件(abalmus/aurelia-ace-editor),我正试图加载到Aurelia,这会损害我的页面加载时间.有没有人知道如何加载Aurelia插件,而不是在应用程序启动?

Main.ts:

import { Aurelia } from 'aurelia-framework';

export function configure(aurelia: Aurelia) {
  aurelia.use
    .standardConfiguration()
    .developmentLogging()
    .plugin('aurelia-validation')
    .plugin('aurelia-validatejs')
    .plugin('aurelia-animator-css')
    .plugin('abalmus/aurelia-ace-editor')
    .plugin('aurelia-cookie')
    .feature('lib/form-validation-renderer');

  aurelia.start().then(() => aurelia.setRoot());
}
Run Code Online (Sandbox Code Playgroud)

J-D*_*awG 20

在您要加载插件的任何模块中,引用模块中的Aurelia类和FrameworkConfigurationaurelia-framework:

import { Aurelia, FrameworkConfiguration } from 'aurelia-framework';
Run Code Online (Sandbox Code Playgroud)

获取ctor中Aurelia对象的引用:

  constructor(private aurelia: Aurelia) { }
Run Code Online (Sandbox Code Playgroud)

然后,在适当的位置(例如activate函数),创建一个新FrameworkConfiguration对象并加载插件:

activate() {
  return new FrameworkConfiguration(this.aurelia).plugin('abalmus/aurelia-ace-editor').apply();
}
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息, 请访问https://github.com/aurelia/framework/issues/145