Angular 库导出模型连同库

Angular library export models together with library

我正在尝试创建一个 angular 库,它可以发布到我们公司的私有 npm 存储库。 在我的库中,我还想导出 类 在我的库组件中使用(通过 @Input() 注入)。

这是一个模型样本:

export class AdsToolbarMenuItem {
    iconName: string;
    label: string;
    enabled: boolean = true;
    menuAction: () => void;

    constructor(init?: Partial<AdsToolbarMenuItem>) {
        Object.assign(this, init);
    }
}

现在我所做的是,我已经导出 moduleExports.ts 模型文件夹中的所有 类,如下所示:

export * from './ContactBox';
export * from './AdsToolbarMainActionItem';
export * from './AdsToolbarMenuItem';

然后,在 index.ts 下,我将导出到我的组件的模块以及对这些 moduleExports 的引用包括在内:

export * from './lib/angular-components.module';
export * from './lib/models/modelExports';

之后我成功打包我的库,将它发布到 NPM 存储库,然后在另一个项目中我通过 npm 安装它(到目前为止一切顺利)。我可以在我的 Angular 项目中导入主 LibraryModule 并毫无问题地使用导出的组件。

尽管如此,一旦我尝试使用从库中导出的任何模型,如下所示:

import { AdsToolbarMainActionItem } from '@ads-shared/ads.shared.angular/lib/models/AdsToolbarMainActionItem';
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  items: AdsToolbarMainActionItem[] = [];

  constructor() {
    this.items.push(new AdsToolbarMainActionItem({ iconName: 'save' }));
  }
}

我收到以下错误消息:

ERROR in ./src/app/app.component.ts Module not found: Error: Can'tresolve '@ads-shared/ads.shared.angular/lib/models/AdsToolbarMainActionItem' in 'C:\SRDEV_npx\empty-angular-project\test\src\app'

我在这里做错了什么?非常感谢有关此事的任何帮助。

如果这些 类 是由您的图书馆导出的,那么您只需要做:

import { AdsToolbarMainActionItem } from '@ads-shared/ads.shared.angular';