是否可以从通过 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"],
测试组件.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();
}
最佳答案
不,目前不可能,请查看@ritaj 对 github 上现有功能请求的评论:https://github.com/angular/angular/issues/18093
关于没有路由器的 Angular 延迟加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53065170/