Version du module @ nuxtjs / vuetify - 1.8.3 nuxt 2.9.2
Décrivez le bogue L'importation d'icônes de composants créés sur mesure est impossible. https://vuetifyjs.com/en/customization/icons#component-icons
Pour reproduire https://codesandbox.io/s/nuxtjs-vuetify-z42mm
Étapes pour reproduire le comportement: 1. Sur index.vue, il y a quelques icônes. L'icône créée personnalisée n'est pas affichée. Aucune erreur, aucun avertissement.
Comportement attendu Je m'attends à avoir accès à une icône personnalisée avec $ vuetify.icons.values.ionic mais ce composant n'a pas été créé dans l'objet $ vuetify.icons.
De plus, il n'est pas possible de changer la police vuetify de vuetify.options.js comme ceci:
icons: { iconfont: 'fa4', values: { customIcon: customIconComponent } }
Peut-être qu'ils sont liés ...
3 Réponses :
Pour utiliser des icônes personnalisées: nuxt.config
import Redux from '~/components/icons/redux.vue' import ReduxSaga from '~/components/icons/redux-saga.vue' import Jwt from '~/components/icons/jwt.vue' import Express from '~/components/icons/express.vue' import MongoDB from '~/components/icons/mongodb.vue' import Sdl from '~/components/icons/sdl.vue' import Webpack from '~/components/icons/webpack.vue' import Yarn from '~/components/icons/yarn.vue' export default { icons: { values: { redux: { component: Redux, }, saga: { component: ReduxSaga, }, jwt: { component: Jwt, }, express: { component: Express, }, mongodb: { component: MongoDB, }, sdl: { component: Sdl, }, webpack: { component: Webpack, }, yarn: { component: Yarn, } } } }
et: plugins / vuetify.js
vuetify: { customVariables: ['~/assets/variables.scss'], optionsPath: '~/plugins/vuetify.js', theme: { dark: false, themes: { dark: { primary: colors.blue.darken2, accent: colors.grey.darken3, secondary: colors.amber.darken3, info: colors.teal.lighten1, warning: colors.amber.base, error: colors.deepOrange.accent4, success: colors.green.accent3 } } } },
J'ai eu le même problème et je l'ai résolu avec la réponse Minaro:
Mais maintenant, séparer la configuration vuetify résout le problème:
nuxt.config.js :
import MyCustomIcon from "~/components/MyCustomIcon.vue"; export default { theme: { ...}, icons: { values: { myCustomIcon: { component: MyCustomIcon, }, }, }
vuetify.js :
modules: ["@nuxtjs/vuetify"], vuetify: { optionsPath: "./plugins/vuetify.js", customVariables: ["~/assets/css/variables.scss"], treeShake: true }
Cela a fonctionné pour moi:
optionsPath: '~/plugins/vuetify.js'
.plugins/vuetify.js
qui exporte les icônes, par exemple:<v-icon>$vuetify.icons.search</v-icon>
$vuetify.icons
, par exemple:import SearchIcon from '~/components/icons/SearchIcon.vue' export default { icons: { values: { search: { component: SearchIcon, } } } }