我正在开发一个拥有Angular应用程序的项目。除此之外,我们还有一个小型库,其中包含可在多个应用程序中使用的组件。在该库中,我使用FontAwesome。稍后我将给出一些解释,但是我目前遇到的问题是,当我运行“ ng serve”时FontAwesome可以工作,但是在CI上构建它并使用该工件后,我得到了错误消息:“ FontAwesome:找不到带有iconName的图标= linkedin和prefix = fab”。
上下文库: 我有一个包含所有组件的通用模块。该模块包括一个自定义模块,如下所示:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import { faLinkedin } from '@fortawesome/free-brands-svg-icons/faLinkedin';
...
library.add(faLinkedin, ...);
@NgModule({
imports: [
FontAwesomeModule
],
exports: [
FontAwesomeModule
]
})
export class .... {}
“ ComponentLibraryModule”(已导入FA模块)中有一个使用这些图标的组件。使用此图标的组件将在库本身而不是在Angular应用程序中使用,如下所示:
<fa-icon [icon]="['fab', 'linkedin']"></fa-icon>
此库是Angular应用程序的依赖项。接下来,我也导入了“ ComponentLibraryModule”。
当我运行“ ng-serve”命令时,图标会完美显示,但是当我使用CI服务器中的工件时,一切都会出错,并且会出现错误(“ FontAwesome:找不到具有iconName = linkedin的图标和prefix = fab“)。
通过导入自定义FA模块并在组件中使用它,尽管它应该可以在任何地方使用,但是似乎并非如此。
我不知道这里可能是什么问题。我使用ng-packagr构建库,但是我不知道这是否可能导致此问题。任何人都对此有经验和/或有想法?
Package.json:
"@fortawesome/angular-fontawesome": "^0.2.0",
"@fortawesome/fontawesome-svg-core": "^1.2.4",
"@fortawesome/free-brands-svg-icons": "^5.3.1",
"@fortawesome/free-solid-svg-icons": "^5.3.1",