Font Awesome 5和Angular 5

Val*_*ine 7 font-awesome font-awesome-5 angular angular5

我正在使用font-awesome npm包(这是Font Awesome 4.7版本),但我想升级到Font Awesome 5.我已经安装了以下软件包:

"@fortawesome/angular-fontawesome": "^0.1.1",
"@fortawesome/fontawesome": "^1.1.8",
"@fortawesome/fontawesome-free-brands": "^5.0.13",
"@fortawesome/fontawesome-free-regular": "^5.0.13",
"@fortawesome/fontawesome-free-solid": "^5.0.13",
"@fortawesome/fontawesome-svg-core": "^1.2.0",
"@fortawesome/free-solid-svg-icons": "^5.1.0",
Run Code Online (Sandbox Code Playgroud)

我正在使用这样的图标:

<i class="fa fa-plus"></i>
Run Code Online (Sandbox Code Playgroud)

在新版本中,我尝试使用这样的图标:

<i class="fas fa-sign-out-alt fa-2x"></i>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我尝试添加这样的图标:

import {faSignOutAlt} from '@fortawesome/fontawesome-free-solid';
import fontawesome from '@fortawesome/fontawesome';
fontawesome.library.add(faSignOutAlt);
Run Code Online (Sandbox Code Playgroud)

在我的app.module.ts中,它正在工作,但我不想逐个导入每个图标.有没有办法像我以前的版本一样使用它们?有没有办法不逐一导入它们?

谢谢

Die*_*ero 9

安装

npm install --save @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)

并在.angular-cli中使用

 "styles": [
    "styles.css",
    "../node_modules/@fortawesome/fontawesome-free/css/all.css",
Run Code Online (Sandbox Code Playgroud)

参考: 使用包管理器


chr*_*con 5

Yes, you could import and add them all

import { fas } from '@fortawesome/free-solid-svg-icons';
import { far } from '@fortawesome/free-regular-svg-icons';

export class AppModule {
  constructor(library: FaIconLibrary) {
    library.addIconPacks(fas, far);
  }
}
Run Code Online (Sandbox Code Playgroud)

However

You can also import entire icon styles. But be careful! This way of importing icons does not support tree-shaking, so all icons from the imported package will end up in the bundle.

Also, since you are using angular-fontawesome, use it:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faCoffee } from '@fortawesome/free-solid-svg-icons';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, FontAwesomeModule],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(library: FaIconLibrary) {
    // Add an icon to the library for convenient access in other components
    library.addIcons(faCoffee);
  }
}
Run Code Online (Sandbox Code Playgroud)

and in html

<!-- simple name only that assumes the default prefix -->
<fa-icon icon="coffee"></fa-icon>
<!-- ['fas', 'coffee'] is an array that indicates the [prefix, iconName] -->
<fa-icon [icon]="['fas', 'coffee']"></fa-icon>
Run Code Online (Sandbox Code Playgroud)

All code taken from the official documentation