Настроить шрифт awesome 5 в angular-cli 8 для angular 7

Я хочу добавить fontawesome 5 в свой проект angular-cli 8.0.2 (с scss), скопировав шрифты в проект (не связывая их из Интернета) и без использования каких-либо внешних плагинов/проектов, а напрямую.

Итак, я создаю проект и устанавливаю fontawesome (бесплатно) через нпм следующим образом.

ng n --style=scss --routing=true myproject
cd myproject
npm install --save-dev @fortawesome/fontawesome-free

Я изменяю файлы:

  • В angular.json в ключе projects.myproject.architect.build.options.styles я добавляю следующее значение в массив

    "./node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss"

  • В styles.scss я добавляю строку:

    @import "../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss";

  • В src/app/app.component.html после Wellcome текста добавляю

    <i class = "fas fa-sync-alt"></i>

Затем я запускаю команду ng serve и захожу в браузере на http://localhost:4200/ и вижу это:

Настроить шрифт awesome 5 в angular-cli 8 для angular 7

Я использую разные инструкции из Интернета, но это лучший результат, который я получаю, но все равно не работает (мы видим квадрат вместо этот значок). Что делать, чтобы решить эту проблему?

По какой причине вы дважды импортируете один и тот же файл SCSS?

Edric 18.06.2019 08:43

когда я не меняю styles.scss, тогда «квадратная иконка» не будет видна

Kamil Kiełczewski 18.06.2019 08:43

Как насчет того, чтобы попробовать удалить импорт в файле styles.scss и вместо этого импортировать файл all.css из node_modules/@fortawesome/fontawesome-free/css/all.css в angular.json?

Edric 18.06.2019 08:45

Скорее всего, это не работает, потому что путь, указанный в fa.scss, неверен для вашего проекта, то есть браузер не может найти шрифт в этом месте и поэтому отображает только квадраты. Но чтобы убедиться в этом, вам нужно будет отладить это с помощью инструментов разработчика и посмотреть, какой файл шрифта загружен (посмотрев на вкладку сети в инструментах разработчика).

cloned 18.06.2019 08:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
7 101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Обновлено: Причина, по которой значки не отображаются, заключается в том, что вы не указали тип стиля значков. Вы можете найти список поддерживаемых стилей значков здесь (или перечисленных ниже):

  • brands.scss
  • solid.scss
  • regular.scss
  • light.scss

Оригинальный ответ

Файл SCSS, который FontAwesome включает в свой пакет NPM, не настраивается для вас: вы должны импортировать отдельные файлы SCSS самостоятельно. (См. документы по части SCSS для получения дополнительной информации)

Вместо этого вы должны включить уже скомпилированный CSS, чтобы вам не пришлось вручную импортировать файлы SCSS. (Выполните команду ниже, чтобы установить стиль)

ng config projects.myproject.architect.build.options.styles "./node_modules/@fortawesome/fontawesome-free/css/all.css"

(Или вручную добавьте "./node_modules/@fortawesome/fontawesome-free/css/all.css" к стилям вашего проекта)

Для получения дополнительной информации о том, что FontAwesome включает в свой пакет, обратитесь к документы.

Я только меняю импорт в стили.css на @import "../node_modules/@fortawesome/fontawesome-free/css/all.css"; и все работает :) - спасибо

Kamil Kiełczewski 18.06.2019 10:45

Font Awesome теперь предоставляет Компонент Font Awesome Angular, но вы также можете использовать следующий простой подход:

npm install --save @fortawesome/fontawesome-free

Загрузите значки Font Awesome, просто добавив следующее в styles.scss:

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

Протестировано на Angular v8.2.14 и Angular CLI v8.3.19.

это должен быть принятый ответ. Мне не хватало "@", чтобы найти его, мне потребовалось несколько часов.

Enrico 17.08.2021 18:37

Другие вопросы по теме