У меня есть библиотека с другими проектами. Давайте возьмем это в качестве примера:
MyCustonLibrary
- Project A
- Project B
Проект B имеет различные компоненты, и его модуль выглядит следующим образом:
@NgModule({
declarations: [
ComponentA,
ComponentB,
ComponentC,
...
],
imports: [
FormsModule,
CommonModule,
...
],
providers: [
...
],
exports: [
ComponentA,
ComponentB,
ComponentC,
],
})
export class MyModuleB{ }
Модуль проекта A выглядит следующим образом:
@NgModule({
declarations: [ComponentD],
imports: [ MyModuleB, CommonModule],
exports: [ComponentD]
})
При построении проектов результатом является папка dist
, в которой есть встроенные файлы двух проектов. После npm publish
(этот шаг не важен, так как это просто zip-файл каждой встроенной папки), я добавил зависимости этих двух проектов в мое тестовое приложение. Я правильно добавил два модуля (MyModuleA и MyModuleB) в модуль примера приложения. Затем я попытался обслужить приложение, но даже без написания какого-либо кода в app.component.html
компилятор говорит, что ComponentB
не является известным элементом.
Вот файл public_api проекта B:
export * from './lib/my-module-B.module';
export * from './lib/my-component-A.component';
export * from './lib/my-component-B.component';
export * from './lib/my-component-C.component';
Ошибка в CLI:
Error during template compile of 'MyModuleA'
Could not resolve my-module-B relative to [object Object]..
Что я делаю не так?