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'

Это должно сделать это.

Другие вопросы по тегам