[angular] Angular 2 + CLI 프로젝트에 멋진 글꼴을 추가하는 방법

Angular 2 이상과 Angular CLI를 사용하고 있습니다.

프로젝트에 폰트를 추가하려면 어떻게해야합니까?



답변

Angular 2.0 최종 릴리스 이후 에는 Angular2 CLI 프로젝트의 구조가 변경되었습니다. 시스템 파일은 필요 없으며 system.js는 없으며 웹팩 만 있습니다. 그래서 당신은 :

  1. npm install font-awesome --save

  2. 에서 angular-cli.json파일의 위치를 styles[]배열을 아래처럼 여기 글꼴 멋진 참조 디렉토리를 추가 :

    "apps": [
        {
          "root": "src",
          "outDir": "dist",
          ....
          "styles": [
              "styles.css",
              "../node_modules/bootstrap/dist/css/bootstrap.css",
              "../node_modules/font-awesome/css/font-awesome.css" // -here webpack will automatically build a link css element out of this!?
          ],
          ...
      }
      ]
    ],
    

    최신 버전의 Angular에서는 angular.json대신 파일을 대신 사용 하십시오 ../. 예를 들어을 사용하십시오 "node_modules/font-awesome/css/font-awesome.css".

  3. 원하는 html 파일에 멋진 글꼴 아이콘을 넣으십시오.

    <i class="fa fa-american-sign-language-interpreting fa-5x" aria-hidden="true"> </i>
  4. 응용 프로그램 중지 Ctrl+를 c사용하여 응용 프로그램을 실행하여 다시 다음 ng serve파수꾼이 변화를 관찰되지 src 폴더와 각-cli.json에만 때문이다.

  5. 멋진 아이콘을 즐기십시오!

답변

SASS를 사용하는 경우 npm을 통해 설치할 수 있습니다.

npm install font-awesome --save

와 함께 가져 오기 /src/styles.scss:

$fa-font-path: "../node_modules/font-awesome/fonts";
@import "../node_modules/font-awesome/scss/font-awesome.scss";

팁 : 가능할 때마다 angular-cli인프라 를 혼동하지 마십시오 . 😉


답변

가장 좋은 답변은 약간 구식이며 약간 더 쉬운 방법이 있습니다.

  1. npm을 통해 설치

    npm install font-awesome --save

  2. 당신의 style.css:

    @import '~font-awesome/css/font-awesome.css';

    또는 당신의 style.scss:


    $fa-font-path: "~font-awesome/fonts";
    @import '~font-awesome/scss/font-awesome';

    편집 : 주석에서 언급했듯이 최신 버전에서 글꼴 행을 다음으로 변경해야합니다$fa-font-path: "../../../node_modules/font-awesome/fonts";

를 사용하면 ~sass를 살펴볼 수 node_module있습니다. 상대 경로보다이 방법으로 수행하는 것이 좋습니다. 그 이유는 npm에 구성 요소를 업로드하고 구성 요소 scss에서 font-awesome을 가져 오는 경우 해당 지점에서 잘못된 상대 경로가 아닌 ~로 제대로 작동하기 때문입니다.

이 방법은 CSS가 포함 된 모든 npm 모듈에 적용됩니다. scss에서도 작동합니다. 그러나 CSS를 styles.scss로 가져 오는 경우 작동하지 않으며 아마도 그 반대도 가능합니다. 여기 왜


답변

Angular Projects에서 Font-Awesome을 사용하는 데는 3 가지 부분이 있습니다

  1. 설치
  2. 스타일링 (CSS / SCSS)
  3. 각도 사용법

설치

NPM에서 설치하고 패키지에 저장하십시오.

npm install --save font-awesome


CSS를 사용하는 경우 스타일링

style.css에 삽입

@import '~font-awesome/css/font-awesome.css';


SCSS를 사용하는 경우 스타일링

스타일에 삽입하십시오.

$fa-font-path: "../node_modules/font-awesome/fonts";
@import '~font-awesome/scss/font-awesome.scss';

일반 Angular 2.4 이상에서 사용

<i class="fa fa-area-chart"></i>

와 사용 각도 재료

app.module.ts에서 생성자를 수정하여 MdIconRegistry

export class AppModule {
  constructor(matIconRegistry: MatIconRegistry) {
    matIconRegistry.registerFontClassAlias('fontawesome', 'fa');
  }
}

수입에 추가 MatIconModule하십시오@NgModule

@NgModule({
  imports: [
    MatIconModule,
    ....
  ],
  declarations: ....

}


이제 모든 템플릿 파일에서 할 수 있습니다

<mat-icon fontSet="fontawesome" fontIcon="fa-area-chart"></mat-icon>


답변

업데이트 2020 년 2 월 :
fortawesome 패키지는 이제 지원 ng add하지만 각도 9에서만 사용할 수 있습니다 .

ng add @fortawesome/angular-fontawesome

2019 년 10 월 8 일 업데이트 :

새 패키지를 사용할 수 있습니다 https://www.npmjs.com/package/@fortawesome/angular-fontawesome

npm install @fortawesome/angular-fontawesome @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons

FontAwesomeModule가져 오기에 추가 src/app/app.module.ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';

@NgModule({
  imports: [
    BrowserModule,
    FontAwesomeModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }

아이콘을 구성 요소의 속성에 연결하십시오 src/app/app.component.ts.

import { Component } from '@angular/core';
import { faCoffee } from '@fortawesome/free-solid-svg-icons';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent {
  faCoffee = faCoffee;
}

템플릿에서 아이콘을 사용하십시오 src/app/app.component.html.

<fa-icon [icon]="faCoffee"></fa-icon>

원래 답변 :

옵션 1:

angular-font-awesome npm 모듈을 사용할 수 있습니다

npm install --save font-awesome angular-font-awesome

모듈을 가져옵니다.

...
//
import { AngularFontAwesomeModule } from 'angular-font-awesome';
@NgModule({
  //...
  imports: [
    //...
    AngularFontAwesomeModule
  ],
  //...
})
export class AppModule { }

Angular CLI를 사용하는 경우 angular-cli.json 내부의 스타일에 글꼴이 멋진 CSS를 추가하십시오.

"styles": [
    "styles.css",
    "../node_modules/font-awesome/css/font-awesome.css"
],

참고 : SCSS 전처리기를 사용하는 경우 scss의 CSS를 변경하십시오.

사용 예 :

<fa name="cog" animation="spin"></fa>

옵토 인 2 :

공식 이야기그것에 가 있습니다

멋진 글꼴 라이브러리를 설치하고 종속성을 추가하십시오. package.json

npm install --save font-awesome

CSS 사용

앱에 Font Awesome CSS 아이콘을 추가하려면 …

// in .angular-cli.json

"styles": [
  "styles.css",
  "../node_modules/font-awesome/css/font-awesome.css"
]

SASS 사용

빈 파일 만들기 _variables.scss에을src/ .

다음에 추가하십시오 _variables.scss:

$fa-font-path : '../node_modules/font-awesome/fonts';
다음을 styles.scss추가하십시오.

@import 'variables';
@import '../node_modules/font-awesome/scss/font-awesome';

테스트

ng serve를 실행하여 개발 모드에서 애플리케이션을 실행하고 http : // localhost : 4200으로 이동 하십시오. .

Font Awesome이 올바르게 설정되었는지 확인하려면 src/app/app.component.html다음으로 변경 하십시오.

<h1>
  {{title}} <i class="fa fa-check"></i>
</h1>

이 파일을 저장 한 후 브라우저로 돌아가서 앱 제목 옆에 Font Awesome 아이콘이 표시됩니다.

또한 관련 질문이 있습니다. Angular CLI 는 기본적으로 angular cli가 글꼴을 루트 로 출력하는 것처럼 dist root글꼴로 멋진 글꼴 파일 로 출력합니다 dist. 전혀 문제가되지 않습니다.


답변

Angular2RC5 및angular-cli 1.0.0-beta.11-webpack.8 당신은 CSS를 수입하여이 작업을 수행 할 수 있습니다.

멋진 글꼴을 설치하십시오.

npm install font-awesome --save

구성된 스타일 파일 중 하나에서 멋진 글꼴을 가져옵니다.

@import '../node_modules/font-awesome/css/font-awesome.css';

(스타일 파일은에 구성되어 있습니다 angular-cli.json)


답변

font-awesome이 이제 설명서에 따라 다르게 설치되어 있기 때문에 해상도를 낮추겠다고 생각했습니다.

npm install --save-dev @fortawesome/fontawesome-free

왜 그것이 끔찍한 지 이제 나에게서 탈출하지만 오래된 글꼴로 돌아 가지 않고 최신 버전을 고수 할 것이라고 생각했습니다.

그런 다음 scss로 가져 왔습니다.

$fa-font-path: "../node_modules/@fortawesome/fontawesome-free/webfonts";
@import "~@fortawesome/fontawesome-free/scss/fontawesome";
@import "~@fortawesome/fontawesome-free/scss/brands";
@import "~@fortawesome/fontawesome-free/scss/regular";
@import "~@fortawesome/fontawesome-free/scss/solid";
@import "~@fortawesome/fontawesome-free/scss/v4-shims";

도움이 되었기를 바랍니다