【问题标题】:Include @fortawesome/fontawesome to angular-cli project将 @fortawesome/fontawesome 包含到 angular-cli 项目中
【发布时间】:2018-06-19 10:13:31
【问题描述】:

我正在尝试将 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

成功获取包。现在我想将包包含到我的 angular-cli 中。在我的app.component.ts 中,我尝试做(如:https://www.npmjs.com/package/@fortawesome/fontawesome 所述):

import  fontawesome  from '@fortawesome/fontawesome'
import { faUser } from '@fortawesome/fontawesome-pro-light'

但是打字稿会抛出错误:

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

使用 Font Awesome 4,我只是将 .css 文件包含到“样式”数组中。但是 Font Awesome 5 没有包含所有 css 的 css 文件。这只是一堆 .js 文件。

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

【问题讨论】:

标签: angular angular-cli font-awesome font-awesome-5 angular-fontawesome


【解决方案1】:

在 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",
  ],

或直接将 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";

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

@import "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fontawesome.css";
@import "../node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-solid.css";

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

关于 SVG

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


SVG 还原

(已编辑以添加有关 SVG 的更多细节)

这比我预期的要简单得多。假设您安装了正确的模块:

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

  "scripts": [
    "../node_modules/@fortawesome/fontawesome/index.js",
    "../node_modules/@fortawesome/fontawesome-free-solid/index.js"
  ],

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

【讨论】:

猜你喜欢
  • 2020-12-06
  • 2023-03-09
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2019-01-19
  • 2019-08-22
相关资源
最近更新 更多