Angular 库无法导出类 - Angular6

Sam*_*our 2 model angular-library angular6

我创建了一个新的 Angular 6 库。这个库有一个名为 User 的模型:

export class User {
    public id: string;
    public username: string;

    constructor(id: string,
                username: string) {
        this.id = id;
        this.username = username;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在另一个角度应用程序中使用该库,一切正常。但是当我尝试使用模型时:

export class AppComponent {
  public user: User;

  constructor() {
    this.user = new User('1', 'my user');
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:\my-app\src\app'
Run Code Online (Sandbox Code Playgroud)

智能感知找到了它,但我仍然收到此错误。

应用模块:

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    UserModule,
  ],
  bootstrap: [AppComponent]
})
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?谢谢!

Phi*_*ner 5

问题是您没有将模型导出到库的外部世界。为了做到这一点,我建议使用一个额外的文件public_api.ts,您可以在其中显式导出模型。将其直接放入库的根目录中my-lib

然后,用显式导出填充文件,如下所示:

export * from './lib/models/user.model'
Run Code Online (Sandbox Code Playgroud)

那应该这样做。