¿Descubrió alguna vez la forma "correcta" de hacer esto? Actualmente solo estoy usando una tarea gulp para copiar las cosas de node_modules en mi directorio público.
sjmeverett
Lo usé como componente de bower más tarde ...
Govan
Respuestas:
106
Instalar como npm install font-awesome --save-dev
En su archivo sin desarrollo, puede importar toda la fuente con menos uso @import "node_modules/font-awesome/less/font-awesome.less", o buscar en ese archivo e importar solo los componentes que necesita. Creo que este es el mínimo para iconos básicos:
/* 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";
Como nota, todavía no va a ahorrar tantos bytes haciendo esto. De cualquier manera, terminarás incluyendo entre 2 y 3 mil líneas de CSS sin reducir.
También deberá servir las fuentes en sí desde una carpeta llamada /fonts/en su directorio público. Puede copiarlos allí con una simple tarea de tragar, por ejemplo:
Es necesario enfatizar más que las fuentes también debían ser servidas en una carpeta de fuentes ... Probablemente pasé una hora tratando de resolver esta pequeña cosa simple.
Alex J
3
También puede adaptar la ruta estática de la fuente configurando la variable fa-font-pathen la ubicación deseada.
zusatzstoff
En el ejemplo anterior, debe seguir sus menos importaciones con la siguiente anulación para que los archivos de fuentes impresionantes copiados por gulp se encuentren después de la implementación:@fa-font-path: "/public/fonts";
CAK2
56
Tienes que establecer la ruta de fuente adecuada. p.ej
Deberá copiar los archivos como parte de su proceso de compilación. Por ejemplo, puede usar un npm postinstallscript para copiar los archivos al directorio correcto:
Para algunas herramientas de compilación, existen paquetes de fuentes impresionantes. Por ejemplo, webpack tiene font-awesome-webpack que te permite simplificar require('font-awesome-webpack').
En webpack.config.js , configure copy-webpack-plugin . NOTA: La carpeta dist predeterminada de webpack 4 es "dist", por lo que estamos copiando la carpeta webfonts de node_modules a la carpeta dist.
Por último, en su archivo main.scss , dígale a fontawesome dónde se ha copiado la carpeta webfonts e importe los archivos SCSS que desea desde 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`
y aplicar lo siguiente font-family a la (s) región (es) deseada (s) en su documento html donde desea usar los iconos de fuente.
Ejemplo :
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)}
FontAwesome recomienda que su paquete npm se instale como devDependency. Para que esta solución funcione (en producción), ¿debería instalarse el paquete como una dependencia regular?
John J. Camilleri
1
Para responder a mi propia pregunta: sí, debe instalarse con --savey no--save-dev
John J. Camilleri
5
Podría agregarlo entre su <head></head>etiqueta así:
O cualquiera que sea tu camino hacia el tuyo node_modules.
Editar (2017-06-26) - Descargo de responsabilidad: HAY MEJORES RESPUESTAS. POR FAVOR NO USE ESTE MÉTODO. En el momento de esta respuesta original, las buenas herramientas no eran tan frecuentes. Con las herramientas de compilación actuales como webpack o browserify, probablemente no tenga sentido usar esta respuesta. Puedo eliminarlo, pero creo que es importante resaltar las diversas opciones que uno tiene y las posibles cosas que se deben y no se deben hacer.
No creo que nadie quiera incluir el directorio node_modules en una compilación y hacer referencia a él directamente.
Fabian Leutgeb
5
Entiendo, pero sigue siendo una opción. No hay una única respuesta para una solución. :) Si tiene un sistema de agrupación, puede que le @import '../node_modules/...'gusten otras respuestas indicadas.
Con Antonakos
1
en comparación con otras respuestas, creo que esta es la mejor. todavía está haciendo referencia a la ruta relativa a través de node_modules en las otras respuestas. si la ubicación del archivo css dentro font-awesomecambiara, esto necesitaría ajustes o mantenimiento tanto como las otras respuestas. La diferencia es que esta respuesta no necesita transpilación ni tareas. simplemente coloca la importación exactamente donde debería esperarse; en una <link>etiqueta.
norteamericano
3
Un simple forder npm tendrá un mínimo de 10 + MB, ningún usuario querrá agregar ese peso a un proyecto por ningún motivo. El objetivo de npm es ayudar mientras se está en desarrollo y minimizar / reducir el tamaño de producción una vez construido. No crea que esta sea una buena opción incluso cuando funciona. ; )
T04435
Agregué el siguiente descargo de responsabilidad: en el momento de esta respuesta original, las buenas herramientas no eran tan frecuentes. Con las herramientas de compilación actuales como webpack o browserify, probablemente no tenga sentido usar esta respuesta. Puedo eliminarlo, pero creo que es importante resaltar las diversas opciones que uno tiene y las posibles cosas que se deben y no se deben hacer.
Con Antonakos
3
Como actualmente estoy aprendiendo node js, también encontré este problema. Todo lo que hice fue, en primer lugar, instalar la fuente impresionante usando npm
npm install font-awesome --save-dev
después de eso, configuré una carpeta estática para el CSS y las fuentes:
Si está usando npm, podría usar Gulp.js, una herramienta de compilación para crear sus paquetes Font Awesome desde SCSS o LESS. Este ejemplo compilará el código de SCSS.
Instale Gulp.js v4 localmente y CLI V2 globalmente.
Instale un complemento llamado gulp-sass usando npm.
Cree un archivo main.scss en su carpeta pública y use este código:
Respuestas:
Instalar como
npm install font-awesome --save-dev
En su archivo sin desarrollo, puede importar toda la fuente con menos uso
@import "node_modules/font-awesome/less/font-awesome.less"
, o buscar en ese archivo e importar solo los componentes que necesita. Creo que este es el mínimo para iconos básicos:Como nota, todavía no va a ahorrar tantos bytes haciendo esto. De cualquier manera, terminarás incluyendo entre 2 y 3 mil líneas de CSS sin reducir.
También deberá servir las fuentes en sí desde una carpeta llamada
/fonts/
en su directorio público. Puede copiarlos allí con una simple tarea de tragar, por ejemplo:fuente
fa-font-path
en la ubicación deseada.@fa-font-path: "/public/fonts";
Tienes que establecer la ruta de fuente adecuada. p.ej
my-style.scss
fuente
../assets/font-awesome/fonts
funciona para mí. Gracias.En mi archivo style.css
fuente
Deberá copiar los archivos como parte de su proceso de compilación. Por ejemplo, puede usar un
npm postinstall
script para copiar los archivos al directorio correcto:Para algunas herramientas de compilación, existen paquetes de fuentes impresionantes. Por ejemplo, webpack tiene font-awesome-webpack que te permite simplificar
require('font-awesome-webpack')
.fuente
Usando webpack y scss:
Instale font-awesome usando npm (usando las instrucciones de configuración en https://fontawesome.com/how-to-use )
Luego, usando el copy-webpack-plugin , copie la carpeta webfonts de node_modules a su carpeta dist durante el proceso de compilación de su paquete web. ( https://github.com/webpack-contrib/copy-webpack-plugin )
En webpack.config.js , configure copy-webpack-plugin . NOTA: La carpeta dist predeterminada de webpack 4 es "dist", por lo que estamos copiando la carpeta webfonts de node_modules a la carpeta dist.
Por último, en su archivo main.scss , dígale a fontawesome dónde se ha copiado la carpeta webfonts e importe los archivos SCSS que desea desde node_modules .
y aplicar lo siguiente
font-family
a la (s) región (es) deseada (s) en su documento html donde desea usar los iconos de fuente.Ejemplo :
fuente
@import "../node_modules/[...]"
a@import "@/../node_modules/[...]"
resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}
y luego@import "node_modules/[...]
Con expressjs, publícalo:
Y puedes verlo en:
yourdomain.com/stylesheets/fontawesome/css/all.min.css
fuente
devDependency
. Para que esta solución funcione (en producción), ¿debería instalarse el paquete como una dependencia regular?--save
y no--save-dev
Podría agregarlo entre su
<head></head>
etiqueta así:O cualquiera que sea tu camino hacia el tuyo
node_modules
.Editar (2017-06-26) - Descargo de responsabilidad: HAY MEJORES RESPUESTAS. POR FAVOR NO USE ESTE MÉTODO. En el momento de esta respuesta original, las buenas herramientas no eran tan frecuentes. Con las herramientas de compilación actuales como webpack o browserify, probablemente no tenga sentido usar esta respuesta. Puedo eliminarlo, pero creo que es importante resaltar las diversas opciones que uno tiene y las posibles cosas que se deben y no se deben hacer.
fuente
@import '../node_modules/...'
gusten otras respuestas indicadas.font-awesome
cambiara, esto necesitaría ajustes o mantenimiento tanto como las otras respuestas. La diferencia es que esta respuesta no necesita transpilación ni tareas. simplemente coloca la importación exactamente donde debería esperarse; en una<link>
etiqueta.Como actualmente estoy aprendiendo node js, también encontré este problema. Todo lo que hice fue, en primer lugar, instalar la fuente impresionante usando npm
después de eso, configuré una carpeta estática para el CSS y las fuentes:
y en html:
¡y funciona bien!
fuente
Si está usando npm, podría usar Gulp.js, una herramienta de compilación para crear sus paquetes Font Awesome desde SCSS o LESS. Este ejemplo compilará el código de SCSS.
Instale Gulp.js v4 localmente y CLI V2 globalmente.
Instale un complemento llamado gulp-sass usando npm.
Cree un archivo main.scss en su carpeta pública y use este código:
Cree un archivo gulpfile.js en el directorio de su aplicación y cópielo.
Ejecute 'gulp build' en su línea de comandos y observe la magia.
fuente
Encontré esta pregunta con un problema similar y pensé en compartir otra solución:
Si está creando una aplicación de Javascript, también se puede hacer referencia a íconos de fuentes increíbles directamente a través de Javascript:
Primero, siga los pasos de esta guía :
Luego, dentro de su javascript:
Después de los pasos anteriores, puede insertar el icono dentro de un nodo HTML con:
También puede acceder a la cadena HTML que representa el icono con:
fuente