没有路由器的角度延迟加载模块

时间:2018-10-30 13:17:16

标签: angular typescript module lazy-loading

是否可以从通过npm链接与其他模块链接的热切加载的“共享”模块中延迟加载模块?我收到此错误: ./src/$$_lazy_route_resource惰性名称空间对象中的错误 找不到模块:错误:无法解析“ C:project \ core \ src \ $$ _ lazy_route_resource”中的“ C:project / shared / src / lazy module / lazy.module.ngfactory.js”。

-project 
        - shared (linked) (eagerly loaded)
                - lazy module
        - core (link) (main app module)

这是我的angular.json(位于内核中) "lazyModules": ["../shared/src/lazy module/lazy.module"],

test.component.ts

constructor(public injector: Injector, private loader: NgModuleFactoryLoader) { }

private moduleRef: NgModuleRef<any>;

load(): Promise<void> {
    if (this.moduleRef) {
        return Promise.resolve();
    }

    const path = 'src/lazy-module/lazy.module#LazyModule';

    return this.loader
        .load(path)
        .then(moduleFactory => {
            this.moduleRef = moduleFactory.create(this.injector).instance;
            console.warn('moduleRef', this.moduleRef);
        })
        .catch(err => {
            console.error('error loading module', err);
        });
}

ngOnInit() {
    this.load();
}

1 个答案:

答案 0 :(得分:0)

否,目前不可能,请检查@ritaj有关github上现有功能请求的评论:https://github.com/angular/angular/issues/18093