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';
我正在尝试创建一个 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';