Haben Sie jemals den "richtigen" Weg gefunden, dies zu tun? Ich verwende derzeit nur eine Schluckaufgabe, um das Zeug aus node_modules in mein öffentliches Verzeichnis zu kopieren.
Sjmeverett
Ich habe es später als Laubenkomponente verwendet ...
Govan
Antworten:
106
Installieren als npm install font-awesome --save-dev
In Ihrer Datei ohne Entwicklung können Sie entweder die gesamte Schriftart mit weniger Aufwand importieren @import "node_modules/font-awesome/less/font-awesome.less"oder in diese Datei schauen und nur die Komponenten importieren, die Sie benötigen. Ich denke, dies ist das Minimum für grundlegende Symbole:
/* adjust path as needed */@fa_path:"../node_modules/font-awesome/less";@import"@{fa_path}/variables.less";@import"@{fa_path}/mixins.less";@import"@{fa_path}/path.less";@import"@{fa_path}/core.less";@import"@{fa_path}/icons.less";
Auf diese Weise werden Sie immer noch nicht so viele Bytes speichern. In beiden Fällen werden Sie zwischen 2-3.000 Zeilen nicht minimierten CSS einfügen.
Sie müssen die Schriftarten auch selbst aus einem Ordner bereitstellen, der /fonts/in Ihrem öffentlichen Verzeichnis aufgerufen wird . Sie können sie dort einfach mit einer einfachen Schluckaufgabe kopieren, zum Beispiel:
Es muss mehr betont werden, dass die Schriftarten auch in einem Schriftartenordner bereitgestellt werden müssen ... Ich habe wahrscheinlich eine Stunde damit verbracht, dieses einfache kleine Ding herauszufinden.
Alex J
3
Sie können den Pfad der Schriftstatik auch anpassen, indem Sie die Variable fa-font-pathan den gewünschten Ort setzen.
Zusatzstoff
Im obigen Beispiel müssen Sie Ihren weniger Importen mit der folgenden Überschreibung folgen, damit die von gulp kopierten font-awesome-Schriftdateien nach der Bereitstellung gefunden werden:@fa-font-path: "/public/fonts";
CAK2
56
Sie müssen den richtigen Schriftpfad festlegen. z.B
Sie müssen die Dateien im Rahmen Ihres Erstellungsprozesses kopieren. Sie können beispielsweise ein npm postinstallSkript verwenden, um die Dateien in das richtige Verzeichnis zu kopieren:
Für einige Build-Tools gibt es bereits vorhandene Font-Awesome-Pakete. Zum Beispiel hat Webpack Font-Awesome-Webpack, mit dem Sie einfach require('font-awesome-webpack').
Als nächstes wird die Verwendung von Copy-webpack-Plugin , kopieren Sie die Webfonts Ordner aus node_modules zu Ihrem dist - Ordner während Ihres webpack Build - Prozess. ( https://github.com/webpack-contrib/copy-webpack-plugin )
npm install copy-webpack-plugin
Konfigurieren Sie in webpack.config.js das copy-webpack-plugin . HINWEIS: Der Standardordner für webpack 4 dist ist "dist", daher kopieren wir den Ordner "webfonts" von "node_modules" in den Ordner "dist".
Schließlich in Ihrer main.scss fontawesome Datei, sagen , wo die Webfonts Ordner kopiert wurde , und die SCSS - Dateien importieren Sie wollen node_modules .
$fa-font-path:"/webfonts";// destination folder in dist//Adapt the path to be relative to your main.scss file@import"../node_modules/@fortawesome/fontawesome-free/scss/fontawesome";//Include at least one of the below, depending on what icons you want.//Adapt the path to be relative to your main.scss file@import"../node_modules/@fortawesome/fontawesome-free/scss/brands";@import"../node_modules/@fortawesome/fontawesome-free/scss/regular";@import"../node_modules/@fortawesome/fontawesome-free/scss/solid";@import"../node_modules/@fortawesome/fontawesome-free/scss/v4-shims";// if you also want to use `fa v4` like: `fa fa-address-book-o`
und wenden Sie Folgendes font-familyauf einen oder mehrere gewünschte Bereiche in Ihrem HTML-Dokument an, in denen Sie die Fontawesome-Symbole verwenden möchten.
Beispiel :
body {
font-family:'Font Awesome 5 Free';// if you use fa v5 (regular/solid)// font-family: 'Font Awesome 5 Brands'; // if you use fa v5 (brands)}
funktioniert gut für mich, ich musste nur den Pfad von @import "../node_modules/[...]"zu@import "@/../node_modules/[...]"
Mecograph
Sie können webpack.config.js einen Alias hinzufügen: resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}und dann@import "node_modules/[...]
FontAwesome empfiehlt, das npm-Paket als zu installieren devDependency. Sollte das Paket als reguläre Abhängigkeit installiert werden, damit diese Lösung (in der Produktion) funktioniert?
John J. Camilleri
1
Um meine eigene Frage zu beantworten: Ja, es muss mit --saveund nicht installiert werden--save-dev
John J. Camilleri
5
Sie können es <head></head>wie folgt zwischen Ihren Tags einfügen:
Oder was auch immer dein Weg zu dir node_modulesist.
Bearbeiten (26.06.2017) - Haftungsausschluss: ES GIBT BESSERE ANTWORTEN. BITTE VERWENDEN SIE DIESE METHODE NICHT. Zum Zeitpunkt dieser ursprünglichen Antwort waren gute Werkzeuge nicht so verbreitet. Mit aktuellen Build-Tools wie Webpack oder browserify ist es wahrscheinlich nicht sinnvoll, diese Antwort zu verwenden. Ich kann es löschen, aber ich denke, es ist wichtig, die verschiedenen Optionen und die möglichen Vor- und Nachteile hervorzuheben.
Ich glaube nicht, dass irgendjemand das Verzeichnis node_modules in einen Build aufnehmen und direkt darauf verweisen möchte.
Fabian Leutgeb
5
Ich verstehe, aber es ist immer noch eine Option. Es gibt keine einzige Antwort für eine Lösung. :) Wenn Sie ein Bündelsystem haben, dann können Sie @import '../node_modules/...'gerne andere Antworten angegeben haben.
Con Antonakos
1
Im Vergleich zu anderen Antworten halte ich dies für das Beste. In den anderen Antworten verweisen Sie weiterhin auf den relativen Pfad über node_modules. Wenn sich der Speicherort der darin enthaltenen CSS-Datei font-awesomeändern würde, müsste dies genauso optimiert oder gewartet werden wie die anderen Antworten. Unterschied ist, dass diese Antwort keine Transpilation oder Aufgaben benötigt. Der Import wird nur genau dort platziert, wo er erwartet werden sollte. in einem <link>Tag.
Nordamerikaner
3
Ein einfacher npm-Anspruch hat mindestens 10 + MB, kein Benutzer möchte dieses Gewicht aus irgendeinem Grund einem Projekt hinzufügen. Der springende Punkt bei npm ist es, während der Entwicklung zu helfen und die Produktionsgröße nach dem Erstellen zu minimieren / zu reduzieren. Denken Sie nicht, dass dies eine gute Option ist, auch wenn es funktioniert. ;; )
T04435
Ich habe den folgenden Haftungsausschluss hinzugefügt: Zum Zeitpunkt dieser ursprünglichen Antwort waren gute Tools nicht so verbreitet. Mit aktuellen Build-Tools wie Webpack oder browserify ist es wahrscheinlich nicht sinnvoll, diese Antwort zu verwenden. Ich kann es löschen, aber ich denke, es ist wichtig, die verschiedenen Optionen und die möglichen Vor- und Nachteile hervorzuheben.
Con Antonakos
3
Da ich gerade Knoten js lerne, bin ich auch auf dieses Problem gestoßen. Alles, was ich getan habe, war, zuerst die Schriftart-awesome mit npm zu installieren
npm install font-awesome --save-dev
Danach habe ich einen statischen Ordner für CSS und Schriftarten festgelegt:
Wenn Sie npm verwenden, können Sie Gulp.js verwenden, ein Build-Tool, um Ihre Font Awesome-Pakete aus SCSS oder LESS zu erstellen. In diesem Beispiel wird der Code aus SCSS kompiliert.
Installieren Sie Gulp.js v4 lokal und CLI V2 global.
Installieren Sie ein Plugin namens gulp-sass mit npm.
Erstellen Sie eine main.scss-Datei in Ihrem öffentlichen Ordner und verwenden Sie diesen Code:
Antworten:
Installieren als
npm install font-awesome --save-dev
In Ihrer Datei ohne Entwicklung können Sie entweder die gesamte Schriftart mit weniger Aufwand importieren
@import "node_modules/font-awesome/less/font-awesome.less"
oder in diese Datei schauen und nur die Komponenten importieren, die Sie benötigen. Ich denke, dies ist das Minimum für grundlegende Symbole:Auf diese Weise werden Sie immer noch nicht so viele Bytes speichern. In beiden Fällen werden Sie zwischen 2-3.000 Zeilen nicht minimierten CSS einfügen.
Sie müssen die Schriftarten auch selbst aus einem Ordner bereitstellen, der
/fonts/
in Ihrem öffentlichen Verzeichnis aufgerufen wird . Sie können sie dort einfach mit einer einfachen Schluckaufgabe kopieren, zum Beispiel:quelle
fa-font-path
an den gewünschten Ort setzen.@fa-font-path: "/public/fonts";
Sie müssen den richtigen Schriftpfad festlegen. z.B
my-style.scss
quelle
../assets/font-awesome/fonts
funktioniert für mich. Vielen Dank.In meiner style.css-Datei
quelle
Sie müssen die Dateien im Rahmen Ihres Erstellungsprozesses kopieren. Sie können beispielsweise ein
npm postinstall
Skript verwenden, um die Dateien in das richtige Verzeichnis zu kopieren:Für einige Build-Tools gibt es bereits vorhandene Font-Awesome-Pakete. Zum Beispiel hat Webpack Font-Awesome-Webpack, mit dem Sie einfach
require('font-awesome-webpack')
.quelle
Verwenden von Webpack und scss:
Installieren Sie font-awesome mit npm (mithilfe der Setup-Anweisungen unter https://fontawesome.com/how-to-use ).
Als nächstes wird die Verwendung von Copy-webpack-Plugin , kopieren Sie die Webfonts Ordner aus node_modules zu Ihrem dist - Ordner während Ihres webpack Build - Prozess. ( https://github.com/webpack-contrib/copy-webpack-plugin )
Konfigurieren Sie in webpack.config.js das copy-webpack-plugin . HINWEIS: Der Standardordner für webpack 4 dist ist "dist", daher kopieren wir den Ordner "webfonts" von "node_modules" in den Ordner "dist".
Schließlich in Ihrer main.scss fontawesome Datei, sagen , wo die Webfonts Ordner kopiert wurde , und die SCSS - Dateien importieren Sie wollen node_modules .
und wenden Sie Folgendes
font-family
auf einen oder mehrere gewünschte Bereiche in Ihrem HTML-Dokument an, in denen Sie die Fontawesome-Symbole verwenden möchten.Beispiel :
quelle
@import "../node_modules/[...]"
zu@import "@/../node_modules/[...]"
resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}
und dann@import "node_modules/[...]
Mit expressjs öffentlich es:
Und Sie können es sehen bei:
yourdomain.com/stylesheets/fontawesome/css/all.min.css
quelle
devDependency
. Sollte das Paket als reguläre Abhängigkeit installiert werden, damit diese Lösung (in der Produktion) funktioniert?--save
und nicht installiert werden--save-dev
Sie können es
<head></head>
wie folgt zwischen Ihren Tags einfügen:Oder was auch immer dein Weg zu dir
node_modules
ist.Bearbeiten (26.06.2017) - Haftungsausschluss: ES GIBT BESSERE ANTWORTEN. BITTE VERWENDEN SIE DIESE METHODE NICHT. Zum Zeitpunkt dieser ursprünglichen Antwort waren gute Werkzeuge nicht so verbreitet. Mit aktuellen Build-Tools wie Webpack oder browserify ist es wahrscheinlich nicht sinnvoll, diese Antwort zu verwenden. Ich kann es löschen, aber ich denke, es ist wichtig, die verschiedenen Optionen und die möglichen Vor- und Nachteile hervorzuheben.
quelle
@import '../node_modules/...'
gerne andere Antworten angegeben haben.font-awesome
ändern würde, müsste dies genauso optimiert oder gewartet werden wie die anderen Antworten. Unterschied ist, dass diese Antwort keine Transpilation oder Aufgaben benötigt. Der Import wird nur genau dort platziert, wo er erwartet werden sollte. in einem<link>
Tag.Da ich gerade Knoten js lerne, bin ich auch auf dieses Problem gestoßen. Alles, was ich getan habe, war, zuerst die Schriftart-awesome mit npm zu installieren
Danach habe ich einen statischen Ordner für CSS und Schriftarten festgelegt:
und in HTML:
und es funktioniert gut!
quelle
Wenn Sie npm verwenden, können Sie Gulp.js verwenden, ein Build-Tool, um Ihre Font Awesome-Pakete aus SCSS oder LESS zu erstellen. In diesem Beispiel wird der Code aus SCSS kompiliert.
Installieren Sie Gulp.js v4 lokal und CLI V2 global.
Installieren Sie ein Plugin namens gulp-sass mit npm.
Erstellen Sie eine main.scss-Datei in Ihrem öffentlichen Ordner und verwenden Sie diesen Code:
Erstellen Sie eine gulpfile.js in Ihrem App-Verzeichnis und kopieren Sie diese.
Führen Sie "gulp build" in Ihrer Befehlszeile aus und beobachten Sie die Magie.
quelle
Ich stieß auf diese Frage mit einem ähnlichen Problem und dachte, ich würde eine andere Lösung teilen:
Wenn Sie eine Javascript-Anwendung erstellen, können auf Symbole für großartige Schriftarten auch direkt über Javascript verwiesen werden:
Führen Sie zunächst die Schritte in diesem Handbuch aus :
Dann in Ihrem Javascript:
Nach den obigen Schritten können Sie das Symbol in einen HTML-Knoten einfügen mit:
Sie können auch auf die HTML-Zeichenfolge zugreifen, die das Symbol darstellt, mit:
quelle