将@ fortawesome/fontawesome包含在angular-cli项目中

pet*_*tur 10 font-awesome angular-cli font-awesome-5 angular angular-fontawesome

我正在尝试将font awesome 5包含在运行Angular> 5.0.0的angular-cli项目(1.6.0)中.

我用过(如上所述):

yarn config set @fortawesome:registry https://npm.fontawesome.com/xxxxx-xxxx-xxx-xxx-xxxxxxx
yarn add @fortawesome/fontawesome
yarn add @fortawesome/fontawesome-pro-light
Run Code Online (Sandbox Code Playgroud)

它成功地获得了包.现在我想把包裹包含在我的angular-cli中.在我app.component.ts试图做的事情中(如https://www.npmjs.com/package/@fortawesome/fontawesome所述):

import  fontawesome  from '@fortawesome/fontawesome'
import { faUser } from '@fortawesome/fontawesome-pro-light'
Run Code Online (Sandbox Code Playgroud)

但是打字稿会引发错误:

ERROR in src/app/app.component.ts(2,9): error TS1192: Module '"xxx/node_modules/@fortawesome/fontawesome/index"' has no default export.
Run Code Online (Sandbox Code Playgroud)

使用Font Awesome 4我只将.css文件包含在"styles"数组中.但Font Awesome 5没有包含所有css的css文件.它只是一堆.js文件.

如何在Angular CLI项目中正确包含Font Awesome 5?(我希望能够<i class="fal fal-user"></i>在我的标记中使用)

j3h*_*yde 24

在Font Awesome 5中,您可以使用FA4中基于字体的图标,也可以使用新的基于SVG的图标.我还在研究使用angular-cli配置基于SVG的功能,但对于基于字体的设置,您可以:

将FontAwesome添加到.angular-cli.json:

将FA样式包括为CSS或SCSS:

  "styles": [
    "styles.scss"
    "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fontawesome.css",
    "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-solid.css",
    "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-regular.css",
    "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-brands.css",
  ],
Run Code Online (Sandbox Code Playgroud)

或直接将FontAwesome添加到您的样式:

在styles.css或styles.scss中包含样式:

$fa-font-path: "../node_modules/@fortawesome/fontawesome-free-webfonts/webfonts";
@import "../node_modules/@fortawesome/fontawesome-free-webfonts/scss/fontawesome.scss";
@import "../node_modules/@fortawesome/fontawesome-free-webfonts/scss/fa-solid.scss";
Run Code Online (Sandbox Code Playgroud)

或直接将FontAwesome作为CSS添加到您的样式:

@import "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fontawesome.css";
@import "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-solid.css";
Run Code Online (Sandbox Code Playgroud)

如果您不需要修改/增强FA SCSS,那么使用第一种方法可能最容易.它只是您配置的一部分.

关于SVG

我怀疑这需要包含FA javascript文件,但我还没有深入研究.一旦完成,它可能与上述非常相似.


SVG Redux

(编辑以在SVG上添加更多细节)

它比我想象的要简单得多.鉴于您安装了正确的模块:

...你可以将两个必需的脚本添加到.angular-cli.json中.您需要基本的fontawesome脚本,然后需要您需要的任何一个包(或全部三个):

  "scripts": [
    "../node_modules/@fortawesome/fontawesome/index.js",
    "../node_modules/@fortawesome/fontawesome-free-solid/index.js"
  ],
Run Code Online (Sandbox Code Playgroud)

这些脚本将找到您的普通FA类,并用完整的SVG版本的FA图标替换元素.