Bagaimana cara menambahkan font-mengagumkan ke proyek Angular 2 + CLI

269

Saya menggunakan Angular 2+ dan Angular CLI.

Bagaimana cara menambahkan font-mengagumkan ke proyek saya?

Nik
sumber
Saya memiliki masalah yang sama. Ini seperti file yang diabaikan oleh CLI dan tidak disalin ketika dalam mode dev. Yang mengatakan, file tersebut ada di dir / dist, ketika build selesai.
Thibs
Saya tidak mengerti, mengapa kita perlu menambahkan font-mengagumkan melalui npm, tidak bisakah kita hanya menautkan ke font-mengagumkan cdn? Apa yang saya lewatkan?
Rosdi Kasim
4
@RosdiKasim Anda dapat menautkan ke CDN dari file indeks Anda. Ada beberapa kasus ketika Anda tidak ingin melakukannya. Proyek perusahaan mungkin tidak mengizinkan sumber eksternal; CDN bisa turun; Pembaruan CLI mungkin perlu memperbarui file index.html sehingga Anda harus memastikan itu tidak menimpa tautan Anda saat ini; font-mengagumkan bisa menjadi ketergantungan untuk lib npm lain; Anda ingin mengunci font-mengagumkan ke versi tertentu; proses pembuatan Anda dapat bergantung padanya ... (dan seterusnya, Anda mendapatkan idenya) Pada akhirnya, bagaimana Anda ingin membawanya.
Nik
Ok terima kasih ... sepertinya saya tidak ketinggalan banyak ... Saya hanya ingin memastikan saya mengerti pro dan kontra ... tepuk tangan.
Rosdi Kasim
Lihat juga dokumentasi resmi untuk menambahkan JS atau CSS: angular.io/guide/…
Guillaume Husta

Jawaban:

469

Setelah rilis final Angular 2.0, struktur proyek Angular2 CLI telah diubah - Anda tidak memerlukan file vendor, tanpa system.js - hanya webpack. Jadi Anda melakukannya:

  1. npm install font-awesome --save

  2. Dalam angular-cli.jsonfile temukan styles[]array dan tambahkan direktori referensi font-mengagumkan di sini, seperti di bawah ini:

    "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!?
          ],
          ...
      }
      ]
    ],
    

    Di versi Angular yang lebih baru, gunakan angular.jsonfile, tanpa ../. Sebagai contoh, gunakan "node_modules/font-awesome/css/font-awesome.css".

  3. Tempatkan beberapa ikon font-mengagumkan dalam file html yang Anda inginkan:

    <i class="fa fa-american-sign-language-interpreting fa-5x" aria-hidden="true"> </i>
  4. Hentikan aplikasi Ctrl+ ckemudian jalankan kembali aplikasi menggunakan ng servekarena pengamat hanya untuk folder src dan angular-cli.json tidak diamati untuk perubahan.

  5. Nikmati ikon luar biasa Anda!
Langsung
sumber
3
Bisakah Anda menjelaskan apa addons? Saya melihat itu didokumentasikan sebagai "Konfigurasi dicadangkan untuk addon pihak ketiga yang diinstal." , tapi saya tidak dapat menemukan penanganan dalam kode Angular-CLI .
Arjan
1
Sayangnya @Arjan & @bjorkblom - saya tidak dapat menemukan dokumen tentang ini addonsdiajukan ... Ini telah menjadi perhatian saya untuk sementara waktu sekarang .. Saya akan memperbarui jawaban saya setelah saya menemukan sesuatu.
AIon
3
@Rosdi Kasim Jan - Anda bisa melakukan itu - tetapi dalam aplikasi yang lebih besar umumnya Anda tidak menggunakan cdns. Pertama karena seseorang dapat meretasnya dan kompromi aplikasi Anda secara tidak langsung. Kedua karena ini bukan hanya font-mengagumkan - Anda perlu perpustakaan eksternal lain seperti bootstrap, perpustakaan dnd dll - jika Anda memiliki permintaan http terpisah - ke cdn - untuk masing-masing, itu kinerja buruk. Yang Anda lakukan sebagai gantinya, adalah mengunduh dengan npm - dan bundel dengan semua kode Anda dalam satu file tunggal menggunakan webpack atau sesuatu, minify dan uglify itu - dan itulah cara Anda dapat menjalankan aplikasi Anda di ponsel - di mana sumber dayanya rendah.
AIon
12
Catatan: addonsproperti tidak lagi digunakan. Cukup untuk memasukkan font-awesome.cssfile di bawah styles. Lihat github.com/angular/angular-cli/blob/master/docs/documentation/…
0x2D9A3
2
Pembaruan: Dengan Angular 6.0.0 nama file diubah dari .angular-cli.json menjadi angular.json
Manoj Negi
123

Jika Anda menggunakan SASS, Anda bisa menginstalnya melalui npm

npm install font-awesome --save

dan impor di Anda /src/styles.scssdengan:

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

Kiat: Kapan pun memungkinkan, hindari mengacaukan angular-cliinfrastruktur. ;)

FDCastel
sumber
Ini solusi imo terbaik. Bekerja seperti pesona setelah a ng build && ng serve -w. Lebih mudah dan lebih aman untuk membiarkan scss membangun font + gaya daripada mencoba mengubah angular-cli infra;)
soywod
33
Jawaban Terbaik. Perbaikan kecil: gunakan ~alih-alih ../node_modules/, misalnya@import '~font-awesome/scss/font-awesome.scss';
m4js7er
5
tidak bekerja untuk saya dengan angular4 dan scss. Saya dapat melihat css tetapi bukan ikonnya
Aniruddha Das
Saya memiliki masalah yang sama pada Angular4
Francesco
2
Gunakan .cssimpor dari ~font-awesome/css/font-awesome.min.cssdan berfungsi dengan baik (default fa-font-path) untuk angular4 / cli
Tim
67

Jawaban teratas agak ketinggalan jaman dan ada cara yang sedikit lebih mudah.

  1. instal melalui npm

    npm install font-awesome --save

  2. di Anda style.css:

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

    atau di Anda style.scss:

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

    Sunting: sebagaimana tercantum dalam komentar, baris untuk font harus diubah pada versi yang lebih baru$fa-font-path: "../../../node_modules/font-awesome/fonts";

menggunakan ~akan membuat sass melihat ke dalam node_module. Lebih baik melakukannya dengan cara ini daripada dengan jalur relatif. Alasannya adalah bahwa jika Anda mengunggah komponen pada npm, dan Anda mengimpor font-awesome di dalam komponen scss maka itu akan berfungsi dengan baik ~ dan bukan dengan jalur relatif yang akan salah pada saat itu.

Metode ini berfungsi untuk setiap modul npm yang berisi css. Ia bekerja untuk scss juga. Namun jika Anda mengimpor css ke styles.scss Anda, itu tidak akan berfungsi (dan mungkin sebaliknya). Inilah sebabnya

Ced
sumber
Masih mendapatkan kesalahan yang sama setelah mengikuti langkah-langkah Anda.
indra257
Gagal memuat file .ttf, woff, dan woff2
indra257
Saya menggunakan cli 1.0. Hanya untuk mengecek, saya membuat satu aplikasi sampel dan hanya memuat font-mengagumkan dan menyebarkan aplikasi. masih mendapatkan kesalahan itu.
indra257
@ indra257 Saya harus menambahkan $ fa-font-path: "../node_modules/font-awesome/fonts"; di styles.scss agar instruksi di atas berfungsi
Todilo
Saya tidak punya file style.scss di proyek saya. Apakah saya harus mengikuti langkah-langkah lain setelah menambahkan file styles.scss.
indra257
51

Ada 3 bagian untuk menggunakan Font-Awesome di Proyek Angular

  1. Instalasi
  2. Styling (CSS / SCSS)
  3. Penggunaan dalam Angular

Instalasi

Instal dari NPM dan simpan ke package.json Anda

npm install --save font-awesome

Styling Jika menggunakan CSS

Masukkan ke style.css Anda

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

Styling Jika menggunakan SCSS

Masukkan ke style.scss Anda

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

Penggunaan dengan Angular biasa 2.4+ 4+

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

Penggunaan dengan Bahan Sudut

Di app.module.ts Anda memodifikasi konstruktor untuk menggunakan MdIconRegistry

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

dan tambahkan MatIconModuleke @NgModuleimpor Anda

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

}


Sekarang dalam file template apa pun yang sekarang dapat Anda lakukan

<mat-icon fontSet="fontawesome" fontIcon="fa-area-chart"></mat-icon>
daging kambing
sumber
1
Apakah Anda memiliki masalah dengan bundling font-awesome. Saya pikir masalah utama adalah bundling ketika kita menggunakan Cli. file tff, woff, woff2 tidak dibundel.
indra257
Saya baru saja membuat aplikasi sampel dan mengikuti langkah Anda. Membundel aplikasi menggunakan ng build. Di konsol saya masih melihat Tidak dapat memuat kesalahan file woff dan woff2
indra257
1
Itu benar. Ini berfungsi dengan baik dengan melayani. Dengan ng build, itu berfungsi dengan baik, tetapi konsol menunjukkan itu tidak dapat memuat beberapa file woff, woff2.
indra257
Saya tidak melihat masalah yang sama, jadi saya berharap ada yang salah dengan file build / config Anda. Saya sarankan Anda mereplikasi masalah Anda dengan test case dan membuat pertanyaan baru dengannya.
muttonUp
Saya membuat aplikasi kosong dengan menggunakan angular-cli dan menambahkan font-mengagumkan. File mana yang Anda ingin saya periksa ..
indra257
26

UPDATE Feb 2020: paket
fortawesome sekarang mendukung ng addtetapi hanya tersedia untuk sudut 9 :

ng add @fortawesome/angular-fontawesome

UPDATE 8 Okt 2019:

Anda dapat menggunakan paket baru https://www.npmjs.com/package/@fortawesome/angular-fontawesome

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

Tambahkan FontAwesomeModuleke impor di 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 { }

Ikat ikon ke properti di komponen Anda 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;
}

Gunakan ikon di templat src/app/app.component.html:

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

JAWABAN ASLI:

Pilihan 1:

Anda dapat menggunakan modul npm angular-font-awesome

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

Impor modul:

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

Jika Anda menggunakan Angular CLI, tambahkan CSS font-mengagumkan ke gaya di dalam angular-cli.json

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

CATATAN: Jika menggunakan preprosesor SCSS, ubah saja css untuk scss

Contoh Penggunaan:

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

Optoin 2:

Ada cerita resmi untuk itu sekarang

Instal pustaka font-mengagumkan dan tambahkan ketergantungan ke package.json

npm install --save font-awesome

Menggunakan CSS

Untuk menambahkan Font ikon CSS Luar Biasa ke aplikasi Anda ...

// in .angular-cli.json

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

Menggunakan SASS

Buat file kosong _variables.scssdi src/.

Tambahkan yang berikut ke _variables.scss:

$fa-font-path : '../node_modules/font-awesome/fonts'; Di styles.scsstambahkan yang berikut:

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

Uji

Jalankan ng serve untuk menjalankan aplikasi Anda dalam mode kembangkan, dan navigasikan ke http: // localhost: 4200 .

Untuk memverifikasi Font Awesome telah diatur dengan benar, ubah src/app/app.component.htmlke ...

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

Setelah menyimpan file ini, kembali ke browser untuk melihat ikon Font Awesome di sebelah judul aplikasi.

Juga ada pertanyaan terkait Angular CLI menghasilkan font-mengagumkan font file dist root karena secara default angular cli output font ke distroot, yang dengan cara tidak masalah sama sekali.

kuncevic.dev
sumber
Saat menggunakan opsi 1, hapus ../dari di depan"../node_modules/font-awesome/css/font-awesome.css"
Alf Moh
MENGAPA saya harus menggunakan paket sudut baru? Tampaknya jauh lebih PITA mengimpornya secara individual.
MDave
1
Maksud saya bahwa npm install @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-iconsdalam jawaban Anda tidak sama dengan npm install @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/angular-fontawesomedi dokumen, maaf jika saya kehilangan sesuatu yang jelas.
User632716
1
@ User632716 OK baru saja menambahkan paket yang hilang ke perintah instal npm.
kuncevic.dev
1
Terima kasih banyak ... Saya sedang mencari font Angular 9 + yang mengagumkan. UPDATE Februari 2020 adalah hal yang paling bermanfaat setelah membuang 1 hari.
Tejashree
15

Dengan Angular2RC5 danangular-cli 1.0.0-beta.11-webpack.8 Anda dapat mencapainya dengan impor css.

Cukup instal font yang mengagumkan:

npm install font-awesome --save

dan kemudian impor font-mengagumkan di salah satu file gaya terkonfigurasi Anda:

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

(file gaya dikonfigurasikan dalam angular-cli.json)

shusson
sumber
1
Sepertinya sedang mencoba mengimpor tetapi mendapatkan kesalahan zone.js:101 - GET http://localhost:4200/node_modules/font-awesome/css/font-awesome.css 404 (Not Found) ... file benar-benar ada tetapi sepertinya localhost:4200tidak berjalan dari root folder ini ... Cara mengemas font-mengagumkan ke localhost:4200folder root ...
microchip78
Saya juga menggunakan [email protected]dan konfigurasi file style angular-cli.jsontidak berfungsi ...
microchip78
1
hmm itu aneh, mungkin upgrade ke 1.0.0-beta.11-webpack.8?
shusson
13

Saya pikir saya akan memberikan resolusi saya untuk ini karena font-mengagumkan sekarang diinstal berbeda sesuai dengan dokumentasi mereka.

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

Mengapa itu fortawesome sekarang luput dari saya tetapi saya pikir saya akan tetap dengan versi terbaru daripada jatuh kembali ke font-mengagumkan yang lama.

Lalu saya mengimpornya ke scss saya

$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";

Semoga ini membantu

Nabel
sumber
5

Banyak instruksi di atas berfungsi, saya sarankan melihat itu. Namun, sesuatu yang perlu diperhatikan:

Penggunaan <i class="fas fa-coffee"></i> tidak berhasil di proyek saya (proyek latihan baru yang baru berumur seminggu) setelah instalasi dan ikon sampel di sini juga disalin ke clipboard dari Font Awesome dalam seminggu terakhir.

Ini <i class="fa fa-coffee"></i> berhasil . Jika setelah menginstal Font Awesome pada proyek Anda itu belum berfungsi, saya sarankan memeriksa kelas pada ikon Anda untuk menghapus 's' untuk melihat apakah itu berfungsi kemudian.

mckenna
sumber
4

Ada banyak jawaban bagus di sini. Tetapi jika Anda mencoba semuanya dan masih mendapatkan kotak alih-alih ikon fontawesome, periksa aturan css Anda. Dalam kasus saya, saya memiliki aturan berikut:

* {
  font-family: Roboto-Light, Roboto, 'Helvetica Neue', sans-serif !important;
}

Dan itu menimpa font yang fontawesome. Hanya mengganti *pemilih untuk bodymemecahkan masalah saya:

body {
  font-family: Roboto-Light, Roboto, 'Helvetica Neue', sans-serif !important;
}
Bunuh Diri Komersial
sumber
Terima kasih banyak yang telah melakukannya untuk saya, sekarang saya harus mencari cara untuk membuat font bekerja sejak melakukannya di selector tubuh tidak bekerja untuk saya
jgerstle
@jgerstle, menentukan font di bodyharus berfungsi, pastikan, bahwa Anda tidak menimpa font di tempat lain, mungkin Anda menimpanya h*atau ptag seperti yang biasanya kita lakukan.
Bunuh Diri Komersial
Ya sesuatu sepertinya menimpanya, tetapi saya tidak berpikir itu kode saya sendiri. Saya pikir itu mungkin saja krom default itu aneh, karena saya mengaturnya! Penting dan sepertinya masih ditimpa. Saya harus melihat lebih dalam.
jgerstle
Saya mendapatkannya menggunakan: not (.fa) untuk mempertahankan pemilih * yang sama, tetapi tidak menargetkan apa pun menggunakan font-mengagumkan
jgerstle
4

Untuk Angular 6,

Pertama npm install font-awesome --save

Tambahkan node_modules/font-awesome/css/font-awesome.csske angular.json .

Ingatlah untuk tidak menambahkan titik di depan node_modules/.

Alf Moh
sumber
2
Saya berakhir dengan hanya kotak untuk gambar ketika saya melakukan ini.
Gargoyle
sama di sini, bagaimana Anda menghapus kotak? @Gargoyle
AngularM
4

Posting ini menjelaskan cara mengintegrasikan Fontawesome 5 ke Angular 6 (Angular 5 dan versi sebelumnya juga akan berfungsi, tetapi kemudian Anda harus menyesuaikan tulisan saya)

Opsi 1: Tambahkan File-css

Pro: Setiap ikon akan disertakan

Contra: Setiap ikon akan disertakan (ukuran aplikasi lebih besar karena semua font disertakan)

Tambahkan paket berikut:

npm install @fortawesome/fontawesome-free-webfonts

Setelah itu tambahkan baris berikut ke angular.json Anda:

"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"
],
...    
}

Opsi 2: Paket sudut

Pro: Ukuran aplikasi lebih kecil

Contra: Anda harus memasukkan setiap ikon yang ingin Anda gunakan secara terpisah

Gunakan paket FontAwesome 5 Angular:

npm install @fortawesome/angular-fontawesome

Cukup ikuti dokumentasi mereka untuk menambahkan ikon. Mereka menggunakan svg-icons, jadi Anda hanya perlu menambahkan svgs / ikon, Anda benar-benar menggunakan.

Paul
sumber
Perhatikan jalur Anda mulai dengan @fortawesome. Perhatikan kata 'FORT', bukan 'FONT' Instal saya juga melakukan ini. Adakah yang tahu ada apa dengan ini?
Helzgate
Tidak apa-apa, tampaknya mereka memiliki beberapa penataan ulang yang terjadi. Lihat This Github Post
Helzgate
@Aniketkale apa yang tidak berfungsi? Saya mempersembahkan dua pilihan
Paul
3

Setelah beberapa percobaan, saya berhasil agar yang berikut berfungsi:

  1. Instal dengan npm:

    npm install font-awesome --save
    
  2. tambahkan ke file angular-cli-build.js :

    vendorNpmFiles : [
        font-awesome/**/*.+(css|css.map|otf|eot|svg|ttf|woff|woff2)',
    ]
    
  3. tambahkan ke index.html

    <link rel="stylesheet" href="vendor/font-awesome/css/font-awesome.min.css">
    

Kuncinya adalah untuk memasukkan jenis file font dalam file angular-cli-build.js

. + (css | css.map | otf | eot | svg | ttf | woff | woff2)

Nik
sumber
1
hanya kepala di atas tidak ada angular-cli-build.jsdi cabang webpack terbaru
shusson
Juga, vendorNpmFiles tidak ditemukan dalam kode Angular-CLI saat ini . Melihat jawaban yang diterima Alon, saya kira ini sudah usang?
Arjan
1
@Arjan ya, jawaban ini sudah usang ... ini adalah untuk pra webpack CLI. Jawaban Alon adalah jawaban yang diterima
Nik
3

Jawaban yang diterima sudah usang.

Untuk angular 9 dan Fontawesome 5

  1. Instal FontAwesome

    NPM instal @ fortawesome / fontawesome-free - save

  2. Daftarkan di angular.json di bawah gaya

    "node_modules/@fortawesome/fontawesome-free/css/all.min.css"

  3. Gunakan di aplikasi Anda

Ron Michael
sumber
2

Sunting: Saya menggunakan sudut ^ 4.0.0 dan Elektron ^ 1.4.3

Jika Anda memiliki masalah dengan ElectronJS atau serupa dan memiliki semacam kesalahan 404, solusi yang mungkin adalah untuk menghapus Anda webpack.config.js, dengan menambahkan (dan dengan asumsi bahwa Anda memiliki modul node font-awesome diinstal melalui npm atau dalam file package.json) :

new CopyWebpackPlugin([
     { from: 'node_modules/font-awesome/fonts', to: 'assets' },
     { from: 'src/assets', to: 'assets' }
]),

Perhatikan bahwa konfigurasi webpack yang saya gunakan memiliki src/app/distsebagai output, dan, pada gilirannya, assetsfolder dibuat oleh 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'
},

Jadi pada dasarnya, apa yang sedang terjadi adalah:

  • Webpack sedang menyalin folder font ke folder dev asset.
  • Webpack menyalin folder aset dev ke distfolder aset

Sekarang, ketika proses pembangunan akan selesai, aplikasi perlu mencari .scssfile dan folder yang berisi ikon, menyelesaikannya dengan benar. Untuk mengatasinya, saya telah menggunakan ini di konfigurasi webpack saya:

// support for fonts
{
    test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
    loader: 'file-loader?name=dist/[name]-[hash].[ext]'
},

Akhirnya, dalam .scssfile tersebut, saya mengimpor font .scss yang mengagumkan dan menentukan jalur font, yang, sekali lagi dist/assets/font-awesome/fonts,. Jalannya adalahdist karena di webpack.config saya output.path diatur sebagaihelpers.root('src/app/dist');

Jadi, di app.scss:

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

Perhatikan bahwa, dengan cara ini, ini akan menentukan jalur font (digunakan nanti dalam file .scss) dan mengimpor file .scss menggunakan ~font-awesomeuntuk menyelesaikan jalur font-mengagumkan dinode_modules .

Ini cukup sulit, tapi itu satu-satunya cara yang saya temukan untuk mengatasi masalah kesalahan 404 dengan Electron.js

briosheje
sumber
2

Mulai dari https://github.com/AngularClass/angular-starter , setelah menguji banyak kombinasi konfigurasi yang berbeda, inilah yang saya lakukan untuk membuatnya bekerja dengan AoT.

Seperti yang sudah dikatakan berkali-kali, di app.component.scss:

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

Kemudian di webpack.config.js (sebenarnya webpack.commong.js di paket perdana):

Di bagian plugin:

new CopyWebpackPlugin([
    { from: 'src/assets', to: 'assets' },
    { from: 'src/meta'},
    { from: 'node_modules/font-awesome/fonts', to: 'assets/fonts/' }
]),

Di bagian aturan:

,
{
    test: /\.(eot|woff2?|svg|ttf)([\?]?.*)$/,
    use: 'file-loader?name=/assets/fonts/[name].[ext]'
}
pengguna3582315
sumber
2

Saya menghabiskan beberapa jam untuk mencoba versi terbaru dari FontAwesome 5.2.0 bekerja dengan AngularCLI 6.0.3 dan Material Design. Saya mengikuti instruksi instalasi npm dari situs web FontAwesome

Dokumen terbaru mereka memerintahkan Anda menginstal menggunakan yang berikut ini:

npm install @fortawesome/fontawesome-free

Setelah menghabiskan beberapa jam akhirnya saya menghapus dan menginstal font yang mengagumkan menggunakan perintah berikut (ini menginstal FontAwesome v4.7.0):

npm install font-awesome --save

Sekarang berfungsi dengan baik menggunakan:

$fa-font-path: "~font-awesome/fonts" !default;
@import "~font-awesome/scss/font-awesome.scss";
<mat-icon fontSet="fontawesome" fontIcon="fa-android"></mat-icon>
Helzgate
sumber
2

Font Awesome memberi Anda scalableikon vektor yang dapat langsung dikustomisasi — ukuran, warna, drop shadow, dan apa pun yang dapat dilakukan dengan kekuatan CSS.

Buat proyek baru dan arahkan ke proyek.

ng new navaApp
cd navaApp

Instal pustaka font-mengagumkan dan tambahkan ketergantungan ke package.json.

npm install --save font-awesome

Menggunakan CSS

Untuk menambahkan Font ikon CSS Luar Biasa ke aplikasi Anda ...

// in angular.json
"build": {
"options": {
"styles": [
  "../node_modules/font-awesome/css/font-awesome.css",
  "src/styles.css"
],
 }
}

Menggunakan SASS

Buat proyek baru dengan SASS:

ng new cli-app --style=scss

Untuk digunakan dengan proyek yang ada dengan CSS:

Ganti nama src/styles.cssmenjadi src/styles.scss Ubah angular.jsonuntuk mencari styles.scssalih - alih css:

// in angular.json
"build": {
"options": {
"styles": [
  "src/styles.scss"
],
}
}

Pastikan untuk mengubah styles.csske styles.scss.

Buat file kosong _variables.scssdi src/.

Tambahkan yang berikut ke _variables.scss:

$fa-font-path : '../node_modules/font-awesome/fonts';

Di styles.scsstambahkan yang berikut:

@import 'variables';
@import '../node_modules/font-awesome/scss/font-awesome';
Mojtaba Nava
sumber
Ini Pertanyaan Yang Bagus. Itu selalu menjadi pertanyaan bagi saya
Seyed Ali Mahmoody
2

Anda dapat menggunakan paket Angular Font Awesome

npm instal - save font-awesome angular-font-awesome

dan kemudian impor di modul Anda:

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

dan impor gaya dalam file sudut-cli:

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

lihat detail lebih lanjut tentang paket di perpustakaan npm:

https://www.npmjs.com/package/angular-font-awesome

dan kemudian gunakan seperti ini:

<i class="fa fa-coffee"></i>

Shmulik
sumber
2

Untuk menggunakan Font Awesome 5 di proyek Angular Anda, masukkan kode di bawah ini di file src / index.html.

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/all.css" integrity="sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz" crossorigin="anonymous">

Semoga berhasil!

Cherma Ramalho
sumber
2

Untuk fontawesome 5.x + cara paling sederhana adalah sebagai berikut,

instal menggunakan paket npm: npm install --save @fortawesome/fontawesome-free

Dalam styles.scssfile Anda termasuk:

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

Catatan: jika Anda memiliki _variables.scssfile maka lebih tepat untuk memasukkan $fa-font-pathdi dalamnya dan tidak di dalam styles.scssfile.

Imtiaz Shakil Siddique
sumber
1

Menggunakan KURANG (bukan SCSS) dan Angular 2.4.0 dan Webpack standar (bukan Angular CLI, yang berikut ini berfungsi untuk saya:

npm install --save font-awesome

dan (di app.component.less):

@import "~font-awesome/less/font-awesome.less";

dan tentu saja Anda mungkin memerlukan cuplikan yang jelas dan sangat intuitif ini (di module.loaders di webpack.conf)

        {
            test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?(v=)?(\d+)(\.\d+)*)?$/,
            loader: 'file?name=graphics/[name].[ext]'
        },

Loader ada di sana untuk memperbaiki kesalahan jenis webpack

"Module parse failed: \node_modules\font-awesome\fonts\fontawesome-webfont.svg?v=4.7.0 Unexpected token (1:0)" 

dan regexp cocok dengan referensi-svg tersebut (dengan atau tanpa spesifikasi versi). Tergantung pada pengaturan webpack Anda, Anda mungkin tidak membutuhkannya atau Anda mungkin memerlukan sesuatu yang lain.

dpnmn
sumber
1

Tambahkan di package.json Anda sebagai "devDependencies" font-awesome: "nomor versi"

Pergi ke Command Prompt ketik perintah npm yang Anda konfigurasikan.

pengguna1349544
sumber
Anda akan ingin menambahkan font-mengagumkan ke 'dependensi' Anda, bukan 'dependensi-dev' karena Anda akan membutuhkannya dalam pembuatan akhir Anda. Juga instruksi di atas tidak menjawab bagaimana proyek Angular akan mengambilnya setelah mereka ditambahkan ke file package.json Anda.
Nik
1

Saya ingin menggunakan Font Awesome 5+ dan sebagian besar jawaban fokus pada versi yang lebih lama

Untuk Font Awesome 5+ baru proyek sudut belum dirilis, jadi jika Anda ingin menggunakan contoh-contoh yang disebutkan di atm situs web font mengagumkan Anda perlu menggunakan pekerjaan sekitar. (terutama fas, kelas jauh, bukan kelas fa)

Saya baru saja mengimpor cdn ke Font Awesome 5 di styles.css saya. Baru saja menambahkan ini jika ini membantu seseorang menemukan jawaban lebih cepat daripada yang saya lakukan :-)

Kode dalam Style.css

@import "https://use.fontawesome.com/releases/v5.0.7/css/all.css";
Ferdi Tolenaar
sumber
Saya mencoba ini. Berfungsi baik di lokal, tetapi ketika saya mencoba membangunnya, ikon hilang.
Piyush Choudhary
1

Jika karena alasan tertentu Anda tidak dapat menginstal paket throw npm. Anda selalu dapat mengedit index.html dan menambahkan font CSS yang luar biasa di kepala. Dan kemudian menggunakannya dalam proyek.

Semir Hodzic
sumber
1

Untuk penggunaan webpack2:

{
 test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?(v=)?(\d+)(\.\d+)*)?$/,
                    loader: "file-loader"
}

dari pada file-loader?name=/assets/fonts/[name].[ext]

aristotll
sumber
1

Sekarang ada beberapa cara untuk menginstal fontAwesome di Angular CLI:

ng add @fortawesome/angular-fontawesome

OR using yarn

yarn add @fortawesome/fontawesome-svg-core
yarn add @fortawesome/free-solid-svg-icons
yarn add @fortawesome/angular-fontawesome

OR Using NPM

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

Referensi di sini: https://github.com/FortAwesome/angular-fontawesome

Archil Labadze
sumber