Angular库无法导出类 - Angular6

3
我创建了一个新的Angular 6库。该库有一个叫做User的模型:
export class User {
    public id: string;
    public username: string;

    constructor(id: string,
                username: string) {
        this.id = id;
        this.username = username;
    }
}

我在另一个Angular应用程序中使用该库,一切都很好。但是当我尝试使用该模型时:

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'

智能感知找到了它,但我仍然收到这个错误。
应用模块:
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    UserModule,
  ],
  bootstrap: [AppComponent]
})

有人有想法吗?谢谢!


4
我建议在你的库中创建一个新文件public_api.ts,位于my-lib/目录下,并且在其中通过export关键字将你想公开的类进行导出。你可以通过添加类似于export * from './lib/models/user.model'的代码来导出每个模型。 - Philipp Meissner
太棒了!对我很有效,谢谢! - Samy Sammour
2
好的,我会尽快准备正式答复。我在打电话时写下了评论。 - Philipp Meissner
1个回答

5
问题在于您没有将模型导出到库的外部世界。为了解决这个问题,我建议添加一个名为public_api.ts的附加文件,在其中明确导出模型。将其放置在库my-lib的根目录中。
然后,填写该文件以进行明确的导出,如下所示:
export * from './lib/models/user.model'

那应该就这样了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接