Я создаю проект, который в настоящее время состоит из трех приложений.
Существует одно основное приложение и два вспомогательных приложения. Я пытаюсь использовать несколько модулей, созданных в приложении-помощнике, и динамически загружать его компоненты в основное приложение.
Когда модули, на которые я ссылаюсь, принадлежат одному и тому же приложению, они работают нормально. Но модули, которые я хочу загрузить, взяты из других вспомогательных приложений, выдает ошибку: ОШИБКА в ./src/app/modx/xyz/xyz.component.ts Модуль не найден: Ошибка: не удается разрешить '../. ./../../../helperapp1/src/app/mod1/mod1.module.js'
Структура каталогов моего приложения следующая:
-main-app
---src
-----app
------modx
-------xyz
-helperapp1
---src
-----app
------mod1
-helperapp1
---src
-----app
Некоторыефрагменты кода, которые я использовал для модуля в том же приложении (которое работает)
ngAfterViewInit(): void {
System.import('../modt.module.js').then((module) => {
this.compiler.compileModuleAndAllComponentsAsync(module.ModtModule)
.then((compiled) => {
const factory = compiled.componentFactories[0];
this.container.createComponent(factory);
});
});
}
Код для загрузки модуля в вспомогательном приложении (которое выдает ошибку):
ngAfterViewInit(): void {
System.import('../../../../../helperapp1/src/app/mod1/mod1.module.js').then((module) => {
this.compiler.compileModuleAndAllComponentsAsync(module.Mod1Module)
.then((compiled) => {
const factory = compiled.componentFactories[0];
this.container.createComponent(factory);
});
});
}
По мне, каквспомогательное приложение не будет присутствовать во время выполнения, когда основное приложение будет работать, поэтому webpack не может сгенерировать или использовать файл js модуля в другом приложении.
Для дальнейшего решения я подумал создатьФайл js модуля и поместите его в определенную папку в главном приложении, из которой он может ссылаться на js. Но как мы можем сгенерировать одиночные js модуля (включая его компоненты внутри) вспомогательного приложения.
Или если кто-то может поделиться любым другим подходом для его выполнения.