18 ответов:
после углового 2.0 окончательного выпуска,структура проекта Angular2 CLI была изменена - вы не нужны никакие файлы поставщика, без системы.js-только webpack. Так вы и делаете:
npm install font-awesome --saveв угловой-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!? ], ... } ] ],поместите некоторые шрифты-удивительные значки в любой html-файл, который вы хочу:
<i class="fa fa-american-sign-language-interpreting fa-5x" aria-hidden="true"> </i>остановить приложение Ctrl + c затем повторно запустите приложение с помощью
ng serveпотому что наблюдатели предназначены только для папки src и angular-cli.json не наблюдается для изменений.- наслаждайтесь своими удивительными значками!
если вы используете 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инфраструктуры. ;)
верхний ответ немного устарел, и есть немного более простой способ.
установить через npm
npm install font-awesome --saveв своем
style.css:
@import '~font-awesome/css/font-awesome.css';или в
style.scss:
$fa-font-path: "~font-awesome/fonts"; @import '~font-awesome/scss/font-awesome';Edit: как отмечено в комментариях, строка для шрифтов должна быть изменена на более новые версии на
$fa-font-path: "../../../node_modules/font-awesome/fonts";С помощью
~будет заставь Сасс заглянуть вnode_module. Лучше сделать это таким образом, чем с относительным путем. Причина в том, что если вы загружаете компонент на npm, и вы импортируете font-awesome внутри компонента scss, то он будет работать правильно с~, а не с относительным путем, который будет неправильным в этот момент.этот метод работает для любого модуля npm, который содержит css. Он работает и для scss. если вы импортируете css в свои стили.scss это не сработает (а может и наоборот наоборот.) вот почему
есть 3 части, чтобы использовать шрифт-Удивительный в угловых проектах
- установка
- стиль (CSS / SCSS)
- использование в угловых
установка
установите из NPM и сохраните в свой пакет.json
npm install --save font-awesomeстилизация при использовании CSS
вставить в код стиль.css
@import '~font-awesome/css/font-awesome.css';стилизация при использовании SCSS
вставить в свой стиль.СКС
$fa-font-path: "../node_modules/font-awesome/fonts"; @import '~font-awesome/scss/font-awesome.scss';использование с простым угловым 2.4+ 4+
<i class="fa fa-area-chart"></i>использование Угловое Материал
в вашем приложении.модуль.ts измените конструктор, чтобы использовать
MdIconRegistryexport 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>
С
Angular2RC5 иangular-cli 1.0.0-beta.11-webpack.8вы можете достичь этого с помощью импорта css.просто установите шрифт awesome:
npm install font-awesome --saveа затем импортировать шрифт-awesome в один из ваших настроенных файлов стиля:
@import '../node_modules/font-awesome/css/font-awesome.css';(файлы стилей настраиваются в
angular-cli.json)
Вариант 1:
можно использовать angular-font-awesome НПМ модуль
npm install --save font-awesome angular-font-awesomeимпорт модуля:
... // import { AngularFontAwesomeModule } from 'angular-font-awesome'; @NgModule({ //... imports: [ //... AngularFontAwesomeModule ], //... }) export class AppModule { }если вы используете Angular CLI, добавьте шрифт-awesome CSS в стили внутри angular-cli.json
"styles": [ "styles.css", "../node_modules/font-awesome/css/font-awesome.css" ],Примечание: при использовании препроцессора SCSS просто измените css для scss
Пример Использования:
<fa name="cog" animation="spin"></fa>значение 2:
есть официальная история для этого
установите библиотеку font-awesome и добавьте зависимость в
package.json
npm install --save font-awesomeС помощью CSS
чтобы добавить шрифт удивительные значки 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.
чтобы убедиться, что шрифт Awesome был настроен правильно, измените src/app / app.деталь.html к следующему...
<h1> {{title}} <i class="fa fa-check"></i> </h1>после сохранения этого файла вернитесь в браузер, чтобы увидеть значок шрифта Awesome рядом с приложением заглавие:.
также есть связанный с этим вопрос Угловое командной строки выводит шрифт-удивительный шрифт файлы корень Р как по умолчанию угловой cli выводит шрифты в
distroot, который, кстати, не является проблемой вообще.
после некоторых экспериментов мне удалось получить следующие работы:
установить с помощью npm:
npm install font-awesome --saveдобавить угловой-cli-build.js file:
vendorNpmFiles : [ font-awesome/**/*.+(css|css.map|otf|eot|svg|ttf|woff|woff2)', ]добавить .HTML-код
<link rel="stylesheet" href="vendor/font-awesome/css/font-awesome.min.css">
ключ должен был включать типы файлов шрифтов в angular-cli-build.файл JS
.+(css / css.map|otf / eot / svg / ttf|woff / woff2)
Edit: я использую angular ^4.0.0 и Electron ^1.4.3
если у вас есть проблемы с ElectronJS или аналогичный и имеют своего рода 404 ошибки, возможным обходным путем является uedit ваш
webpack.config.js, добавив (и предположив, что у вас есть модуль узла font-awesome, установленный через npm или в пакете.JSON-файл):new CopyWebpackPlugin([ { from: 'node_modules/font-awesome/fonts', to: 'assets' }, { from: 'src/assets', to: 'assets' } ]),обратите внимание, что конфигурация webpack, которую я использую, имеет
src/app/distкак выход, и, в dist,assetsпапка создается webpack:// our angular app entry: { 'polyfills': './src/polyfills.ts', 'vendor': './src/vendor.ts', 'app': './src/app/app', }, // Config for our build files output: { path: helpers.root('src/app/dist'), filename: '[name].js', sourceMapFilename: '[name].map', chunkFilename: '[id].chunk.js' },Итак, в основном, что в настоящее время происходит:
- Webpack копирует папку fonts в папку dev assets.
- Webpack копирует папку dev assets в
distпапку assetsтеперь, когда процесс сборки будет завершен, приложение должно будет искать
.scssфайл и папка, содержащая значки, разрешающие их правильно. Чтобы решить их, я использовал это в своем webpack config:// support for fonts { test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/, loader: 'file-loader?name=dist/[name]-[hash].[ext]' },наконец, в
.scssфайл, я импортирую шрифт-потрясающе .scss и определение пути шрифтов, который, опять же,dist/assets/font-awesome/fonts. Путь-этоdistпотому что в моем webpack.сконфигурируйте вывод.путь задается какhelpers.root('src/app/dist');так, в
app.scss:$fa-font-path: "dist/assets/font-awesome/fonts"; @import "~font-awesome/scss/font-awesome.scss";обратите внимание, что таким образом, он будет определять путь шрифта (использовать позже .SCSS файл) и импортировать .scss файл с помощью
~font-awesomeчтобы разрешить шрифт-удивительный путь вnode_modules.это довольно сложно, но это единственный способ, который я нашел, чтобы обойти проблему ошибки 404 с Electron.js
начиная с https://github.com/AngularClass/angular-starter, после тестирования много различных комбинаций конфигурации, вот что я сделал, чтобы заставить его работать с AoT.
как уже много раз говорилось, По моему
app.component.scss:$fa-font-path: "~font-awesome/fonts" !default; @import "~font-awesome/scss/font-awesome";затем в webpack.конфиг.js (на самом деле webpack.всех.js в стартовом пакете):
В разделе Плагины:
new CopyWebpackPlugin([ { from: 'src/assets', to: 'assets' }, { from: 'src/meta'}, { from: 'node_modules/font-awesome/fonts', to: 'assets/fonts/' } ]),В разделе Правила:
, { test: /\.(eot|woff2?|svg|ttf)([\?]?.*)$/, use: 'file-loader?name=/assets/fonts/[name].[ext]' }
есть много хороших ответов здесь. Но если вы попробовали все из них и все еще получаете квадраты вместо значков fontawesome, Проверьте свои правила css. В моем случае у меня было следующее правило:
* { font-family: Roboto-Light, Roboto, 'Helvetica Neue', sans-serif !important; }и он переопределяет шрифтов fontawesome. Просто замена
*селекторbodyрешить мою проблему:body { font-family: Roboto-Light, Roboto, 'Helvetica Neue', sans-serif !important; }
Угловое 6,
первый
npm install font-awesome --saveдобавить
node_modules/font-awesome/css/font-awesome.cssto угловое.json.помните не добавить любые точки перед
node_modules/.
этот пост описывает, как интегрировать Fontawesome 5 на Угловое 6 (Angular 5 и предыдущие версии также будут работать, но тогда вам придется настроить мои записи)
Вариант 1: добавьте css-файлы
Pro: каждый значок будет включен
Contra: каждый значок будет включен (больший размер приложения, потому что все шрифты включены)
добавить следующий пакет:
npm install @fortawesome/fontawesome-free-webfontsпотом добавить следующие строки для вашего углового.json:
"app": { .... "styles": [ .... "node_modules/@fortawesome/fontawesome-free-webfonts/css/fontawesome.css", "node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-regular.css", "node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-brands.css", "node_modules/@fortawesome/fontawesome-free-webfonts/css/fa-solid.css" ], ... }Вариант 2: угловой пакет
Pro: меньший размер приложения
Contra: вы должны включить каждый значок, который вы хотите использовать отдельно
используйте FontAwesome 5 угловой пакет:
npm install @fortawesome/angular-fontawesomeпросто следуйте их документации, чтобы добавить значки. Они используют svg-значки, поэтому вам нужно только добавить svgs / значки, которые вы действительно используете.
используя LESS (не SCSS) и Angular 2.4.0 и стандартный Webpack (не угловой CLI, для меня работало следующее:
npm install --save font-awesomeи (в мое приложение.деталь.меньше):
@import "~font-awesome/less/font-awesome.less";и, конечно, вам может понадобиться этот очевидный и интуитивно понятный фрагмент (в модуле.погрузчики в webpack.conf)
{ test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?(v=)?(\d+)(\.\d+)*)?$/, loader: 'file?name=graphics/[name].[ext]' },загрузчик есть, чтобы исправить ошибки webpack такого рода
"Module parse failed: \node_modules\font-awesome\fonts\fontawesome-webfont.svg?v=4.7.0 Unexpected token (1:0)"и регулярное выражение соответствует этим svg-ссылкам (с или без версии спецификация.) В зависимости от настроек вашего webpack вам это может не понадобиться или вам может понадобиться что-то еще.
Я хотел использовать шрифт Awesome 5+ и большинство ответов сосредоточены на старых версиях
для нового шрифта Awesome 5 + угловой проект еще не выпущен, поэтому, если вы хотите использовать примеры, упомянутые на веб-сайте font awesome atm, вам нужно использовать обходной путь. (особенно fas, far классы вместо класса fa)
Я только что импортировал cdn в шрифт Awesome 5 в моих стилях.стиль CSS. Просто добавил Это в случае, если это поможет кому-то найти ответ быстрее, чем Я сделал :-)
код в стиле.css
@import "https://use.fontawesome.com/releases/v5.0.7/css/all.css";
Если по какой-то причине вы не можете установить пакет throw npm. Вы всегда можете редактировать индекс.html и добавить шрифт awesome CSS в голове. А потом просто использовал его в проекте.
для webpack2 используйте:
{ test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?(v=)?(\d+)(\.\d+)*)?$/, loader: "file-loader" }вместо
file-loader?name=/assets/fonts/[name].[ext]
Я потратил несколько часов, пытаясь получить последнюю версию FontAwesome 5.2.0, работающую с AngularCLI 6.0.3 и Material Design. Я следовал инструкциям по установке npm с сайта FontAwesome
их последние документы инструктируют вас установить, используя следующее:
npm install @fortawesome/fontawesome-freeпосле потери нескольких часов я, наконец, удалил его и установил Font awesome с помощью следующей команды (это устанавливает FontAwesome v4.7. 0):
npm install font-awesome --saveТеперь он отлично работает с помощью:
$fa-font-path: "~font-awesome/fonts" !default; @import "~font-awesome/scss/font-awesome.scss"; <mat-icon fontSet="fontawesome" fontIcon="fa-android"></mat-icon>
добавьте его в свой пакет.JSON как "devDependencies" шрифт-удивительный : "номер версии"
перейдите в командную строку введите команду npm, которую вы настроили.
Comments