Bienvenido a proyecto online, ahora vas a encontrar la respuesta de lo que estás buscando.
Solución:
Para un proyecto Nuxt / Vuetify:
Complementando la respuesta anterior, también puede configurarlo en el archivo de configuración de Vuetify, que se crea durante la instalación del proyecto ( “plugins / vuetify.js” ), agregando el prop “iconfont”:
import '@fortawesome/fontawesome-free/css/all.css' // Ensure you are using css-loader
import Vue from 'vue'
import Vuetify from 'vuetify'
Vue.use(Vuetify,
iconfont: 'fa'
)
Ahora, utilícelo con el componente de icono de esta manera:
fab fa-vuejs
Puede utilizar la sacudida de árboles.
Dado que está buscando una opción para evitar cargar todos los íconos en vue / vuetify, le sugiero que utilice el método de agitación de árboles y agregue cada ícono que desee usar, manualmente. Esto puede ser un poco tedioso, pero agregar íconos a pedido será beneficioso a largo plazo, ya que el paquete web simplemente agrupará los que usted especifique.
tenga en cuenta:
En este tutorial, asumo que el lector tiene el paquete Pro. Si solo desea usar los gratuitos, simplemente elimine cualquier cosa que se parezca a profesional de la mezcla
A continuación, puede ver mi forma preferida de hacer esto con vuetify y usar SVG con v-icon y v-text / v-html:
Primero tenemos que instalar los iconos:
(abra su terminal / símbolo del sistema dentro de su proyecto e instálelo)
$ npm i --save @fortawesome/fontawesome-svg-core // this is the svg core, it is needed.
$ npm i --save @fortawesome/vue-fontawesome // Vue integration *
$ npm i --save @fortawesome/free-brands-svg-icons // Branding icons
$ npm i --save @fortawesome/free-regular-svg-icons // only for FA5 free **
$ npm i --save @fortawesome/free-solid-svg-icons // only for FA5 free **
$ npm i --save @fortawesome/pro-regular-svg-icons // Pro icons regular type
$ npm i --save @fortawesome/pro-light-svg-icons // Pro icons light type
$ npm i --save @fortawesome/pro-solid-svg-icons // Pro icons solid type
$ npm i --save @fortawesome/pro-duotone-svg-icons // Pro icons duotone type ***
- El paquete de integración vue más información (**) Solo es necesario para los íconos gratuitos, si tienes Proy siguió las instrucciones aquí
- , ya están incluidos en pro. (***)
Al momento de escribir, los íconos de duotono aún no están completamente integrados, tenga cuidado con los errores.
Luego agreguemos esto a nuestra configuración de vuetify: Supongo aquí que usa vuejs con javascript (no mecanografiado)
vue add vuetify
y que has instalado vuetify a través devuetify.js
. losplugins
el archivo debe residir dentro delsrc
carpeta en tu
// src/plugins/vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import library from '@fortawesome/fontawesome-svg-core' // Core SVG
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' // Integration
// ... there should be more here, but see next part below ...
Vue.component('font-awesome-icon', FontAwesomeIcon) // add it to vue
Vue.use(Vuetify);
export default new Vuetify(
icons:
iconfont: 'faSvg', // The bees knees, what most people are looking for.
,
);
carpeta. Su kilometraje puede variar. fa-plus
Bien, ahora que hemos agregado los componentes principales de FontAwesome 5, usemos el cambio de árbol para indicar qué íconos nos gustaría usar para nuestro proyecto. Solo usaré dos iconos como ejemplos: fa-user-circle
y , y los agregaré para tres de los paquetes Font Awesome Pro 5 que instalamos (Ligero, Regular y Duotono)
y luego agregaré algunos otros (barras y usuario) para el sólido, para ver cómo se puede hacer esto de ambas formas al mismo tiempo. vuetify.js
Así que volvamos a nuestro
// ... there should be more here, but see next part below ...
archivo, reemplazamos
// src/plugins/vuetify.js
// ...
import
faBars,
faUser
from '@fortawesome/pro-solid-svg-icons'
import
faPlus as farPlus,
faUserCircle as farUserCircle
from '@fortawesome/pro-regular-svg-icons'
import
faPlus as falPlus,
faUserCircle as falUserCircle
from '@fortawesome/pro-light-svg-icons'
import
faPlus as fadPlus,
faUserCircle as fadUserCircle
from '@fortawesome/pro-duotone-svg-icons'
// ...
con lo siguiente (nota camelcase):
import far from '@fortawesome/pro-regular-svg-icons'
Nota rápida: si aún desea agregar la biblioteca completa de estos, puede hacerlo importando así: (para regular)
etcétera. library
Como puede ver, ahora hemos agregado fa-plus y fa-user-circle a nuestro proyecto. A partir de aquí, debemos agregarlos al vuetify.js
importamos en el config.(no se preocupe, el archivo completo se puede ver a continuación en el fragmento de código).
// src/plugins/vuetify.js
// ...
Vue.component('font-awesome-icon', FontAwesomeIcon)
library.add(
faBars, faUser,
farPlus, falPlus, fadPlus,
farUserCircle, falUserCircle, fadUserCircle
)
/// ...
: Ahora que los hemos agregado a la biblioteca, debemos entregarlos para vuetificarlos. Vuetify tiene algunos especial
iconos que utilizan para cosas como el(menú de hamburguesas)
const CUSTOM_ICONS =
add: // custom icon I want to use
component: FontAwesomeIcon,
props:
icon: ['fad', 'plus']
,
menu: // used for the nav-icon by vuetify
component: FontAwesomeIcon,
props:
icon: ['fas', 'user']
. Podemos personalizarlos y agregar los nuestros a la mezcla (si lo deseamos). Hago esto definiendo una constante y agrego todos los íconos que necesito allí, así:
export default new Vuetify(
icons:
iconfont: 'faSvg',
values: CUSTOM_ICONS,
,
);
y luego agregamos esta constante a la configuración así:
values
También puede agregarlos directamente al
variable, pero me resulta más legible hacerlo a través de una constante.
$vuetify.icons.add
$add
append-icon="$vuetify.icon.unfold"
>
Ahora podemos usarlos en plantillas, anexos o antepuestos:
// src/plugins/vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import library from '@fortawesome/fontawesome-svg-core' // Core SVG
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' // Integration
import
faBars,
faUser
from '@fortawesome/pro-solid-svg-icons'
import
faPlus as farPlus,
faUserCircle as farUserCircle
from '@fortawesome/pro-regular-svg-icons'
import
faPlus as falPlus,
faUserCircle as falUserCircle
from '@fortawesome/pro-light-svg-icons'
import
faPlus as fadPlus,
faUserCircle as fadUserCircle
from '@fortawesome/pro-duotone-svg-icons'
Vue.component('font-awesome-icon', FontAwesomeIcon)
library.add(
faBars, faUser,
farPlus, falPlus, fadPlus,
farUserCircle, falUserCircle, fadUserCircle
)
const CUSTOM_ICONS =
add: // custom icon I want to use
component: FontAwesomeIcon,
props:
icon: ['fad', 'plus']
,
menu: // used for the nav-icon by vuetify
component: FontAwesomeIcon,
props:
icon: ['fas', 'user']
Vue.use(Vuetify);
export default new Vuetify(
icons:
iconfont: 'faSvg',
values: CUSTOM_ICONS,
,
);
$vuetify.icons.add
$add
append-icon="$vuetify.icon.unfold"
>
Finalmente, aquí está el ejemplo completo:
Sugerencia de archivos separados para una mejor lectura
Podemos separar la lógica de fontAwesome en otro archivo:
- Entonces tenemos 2 archivos:
fontAwesome.js
los - donde haces toda la lógica que pertenece a fontAwesome
vuetify.js
losfontAwesome.js
// src/plugins/fontAwesome.js
import library from '@fortawesome/fontawesome-svg-core' // Core SVG
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' // Integration
import
faBars,
faUser
from '@fortawesome/pro-solid-svg-icons'
import
faPlus as farPlus,
faUserCircle as farUserCircle
from '@fortawesome/pro-regular-svg-icons'
import
faPlus as falPlus,
faUserCircle as falUserCircle
from '@fortawesome/pro-light-svg-icons'
import
faPlus as fadPlus,
faUserCircle as fadUserCircle
from '@fortawesome/pro-duotone-svg-icons'
library.add(
faBars, faUser,
farPlus, falPlus, fadPlus,
farUserCircle, falUserCircle, fadUserCircle
)
const CUSTOM_ICONS =
add: // custom icon I want to use
component: FontAwesomeIcon,
props:
icon: ['fad', 'plus']
,
menu: // used for the nav-icon by vuetify
component: FontAwesomeIcon,
props:
icon: ['fas', 'user']
export CUSTOM_ICONS
// src/plugins/vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import CUSTOM_ICONS from "./fontAwesome"
Vue.use(Vuetify);
export default new Vuetify(
icons:
iconfont: 'faSvg',
values: CUSTOM_ICONS
,
);
$vuetify.icons.add
$add
append-icon="$vuetify.icon.unfold"
>
importará los iconos de
- Otras lecturas:
- ¿Por qué utilizar Font Awesome con la biblioteca como concepto?
- Vuetify: cómo instalar Font Awesome 5
Usando Font Awesome con VueJS
Se publica una solución simple en las opciones del marco en Vuetify: https://vuetifyjs.com/en/framework/icons
npm install @fortawesome/fontawesome-free -D
Instale la biblioteca de iconos usando NPM o yarn:
Config: para un proyecto vue simple
import '@fortawesome/fontawesome-free/css/all.css'
import Vue from 'vue'
import Vuetify from 'vuetify'
Vue.use(Vuetify,
iconfont: 'fa'
)
Agregue esto a su main.js
Config: para un proyecto nuxt + vuetify
import '@fortawesome/fontawesome-free/css/all.css'
import Vue from 'vue'
import Vuetify from 'vuetify'
Vue.use(Vuetify,
iconfont: 'fa'
)
Cree un archivo js (por ejemplo, icons.js) en complementos
src: '~/plugins/icons.js', ssr:false
Agregue esto a sus complementos en nuxt.config.js
Uso
Ahora puede acceder a íconos impresionantes de fuentes usando v-icon o agregar / anteponer en componentes como:
Si estás contento con lo expuesto, tienes la opción de dejar una reseña acerca de qué le añadirías a esta sección.