Isa*_*nte 6 font-awesome-5 angular
我有一个使用FontAwesome图标的Angular 7组件库。
首先,输出ng version:
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.10.7
@angular-devkit/build-angular 0.10.7
@angular-devkit/build-ng-packagr 0.10.7
@angular-devkit/build-optimizer 0.10.7
@angular-devkit/build-webpack 0.10.7
@angular-devkit/core 7.0.7
@angular-devkit/schematics 7.0.7
@angular/cdk 7.1.1
@angular/cli 7.0.7
@angular/compiler-cli 7.0.4
@angular/language-service 7.0.4
@angular/material 7.1.1
@ngtools/json-schema 1.1.0
@ngtools/webpack 7.0.7
@schematics/angular 7.0.7
@schematics/update 0.10.7
ng-packagr 4.4.5
rxjs 6.3.3
typescript 3.1.3
webpack 4.19.1
Run Code Online (Sandbox Code Playgroud)
和相关的花絮package.json:
"@fortawesome/angular-fontawesome": "^0.3.0",
"@fortawesome/fontawesome-svg-core": "^1.2.8",
"@fortawesome/free-regular-svg-icons": "^5.5.0",
"@fortawesome/free-solid-svg-icons": "^5.5.0",
Run Code Online (Sandbox Code Playgroud)
这是我的模块定义:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown';
import { faBars } from '@fortawesome/free-solid-svg-icons/faBars';
import { faCalendarAlt } from '@fortawesome/free-solid-svg-icons/faCalendarAlt';
import { faCaretLeft } from '@fortawesome/free-solid-svg-icons/faCaretLeft';
import { faChevronDown } from '@fortawesome/free-solid-svg-icons/faChevronDown';
import { faSortUp } from '@fortawesome/free-solid-svg-icons/faSortUp';
import { faSortDown } from '@fortawesome/free-solid-svg-icons/faSortDown';
import { faChevronUp } from '@fortawesome/free-solid-svg-icons/faChevronUp';
import { faChevronLeft } from '@fortawesome/free-solid-svg-icons/faChevronLeft';
import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes';
import { faUser } from '@fortawesome/free-solid-svg-icons/faUser';
import { faSignOutAlt } from '@fortawesome/free-solid-svg-icons/faSignOutAlt';
import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons/faQuestionCircle';
import { faGlobeAmericas } from '@fortawesome/free-solid-svg-icons/faGlobeAmericas';
<app imports>
library.add(
faAngleDown, faBars, faCalendarAlt, faCaretLeft, faChevronDown,
faChevronLeft, faChevronUp, faGlobeAmericas, faQuestionCircle,
faSignOutAlt, faSortDown, faSortUp, faTimes, faUser
);
@NgModule({
declarations: [
<app components>
],
exports: [
<app components>
],
imports: [
FontAwesomeModule,
<other app imports>
]
})
export class LibModule {
public static forRoot(): ModuleWithProviders {
return {
ngModule: LibModule,
providers: [
<some providers>
]
};
}
}
Run Code Online (Sandbox Code Playgroud)
这里是public_api.ts:
export * from './lib/lib.module';
<component exports>
Run Code Online (Sandbox Code Playgroud)
我可以ng build mylib --prod很好地构建此模块。但是,当我尝试在应用程序中使用它时,每当使用该--prod标志构建或服务时,都会出现以下错误:
FontAwesome: Could not find icon with iconName=times and prefix=fas
这是app.module.ts该应用程序的文件:
import { faCalendarAlt } from '@fortawesome/free-solid-svg-icons';
import { library } from '@fortawesome/fontawesome-svg-core';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { LibModule } from 'libmodule';
<app imports>
library.add(faCalendarAlt);
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
AppComponent,
],
imports: [
FontAwesomeModule,
LibModule.forRoot(),
]
})
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)
app.component.ts使用faCalendarIcon,还引入了一些组件,LibModule这些组件又使用了lib模块定义中描述的图标。
使用ng serve --prod或ng build --prod然后不通过烘焙的角度开发服务器提供应用程序服务时,日历图标显示就很好。但是,库组件本身使用的每个图标都不会显示,我从控制台标题中看到了每个图标的错误。
请注意,当我ng serve不带prod标志使用时不会发生这种情况,因此它可能与摇树有关吗?
如何在库中使用FontAwesomeModule并确保库的使用者也可以看到图标?我不想让所有使用者都导入该库使用的所有图标。
请注意,我在我的FontAwesome图标中使用了深度导入,我也尝试过这样的“浅”导入:
import {
faAngleDown,
faBars,
faCalendarAlt,
faCaretLeft,
faChevronDown,
faChevronLeft,
faChevronUp,
faGlobeAmericas,
faQuestionCircle,
faSignOutAlt,
faSortDown,
faSortUp,
faTimes,
faUser
} from '@fortawesome/free-solid-svg-icons';
Run Code Online (Sandbox Code Playgroud)
我还尝试过为我的lib模块导出FontAwesomeModule,而不是将其导出。我尝试导出每个图标,但是似乎不可能。
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |