Angular Library не удалось экспортировать класс - Angular6
Я создал новую библиотеку Angular 6. Эта библиотека имеет модель под названием Пользователь:
export class User {
public id: string;
public username: string;
constructor(id: string,
username: string) {
this.id = id;
this.username = username;
}
}
Я использую библиотеку в другом угловом приложении, все отлично работает. Но когда я пытаюсь использовать модель:
export class AppComponent {
public user: User;
constructor() {
this.user = new User('1', 'my user');
}
}
Я получаю эту ошибку:
Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:\my-app\src\app'
Intellisense нашел его, но я все еще получаю эту ошибку.
AppModule:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UserModule,
],
bootstrap: [AppComponent]
})
У кого-нибудь есть идея? Спасибо!
1 ответ
Решение
Проблема в том, что вы не экспортировали модель во внешний мир вашей библиотеки. Для этого я предлагаю дополнительный файл с именем public_api.ts
в котором вы экспортируете модель явно. Поместите это прямо в корень вашей библиотеки my-lib
,
Затем заполните файл явным экспортом так:
export * from './lib/models/user.model'
Это должно сделать это.