vue-fontawesome: Nuxt 3 - Content duplicated by using font-awesome-icon

Describe the bug When I used the font-awesome-icon tag, my page content is duplicated

(in app.vue for example)

	<NuxtLayout>
		<NuxtLoadingIndicator />
		<h1> app.vue </h1>
		<font-awesome-icon class="text-active h-8" icon="fa-solid fa-user-secret" />

		<NuxtPage />
	</NuxtLayout>

My layouts/default.vue file

    <p class="bg-active text-white w-fit ">HEADER </p>
		<main>
			<slot />
		</main>
     <p class="bg-active text-white w-fit ">FOOTER</p>

I used fontawesome.js plugin

import { library, config } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'

import { fas } from '@fortawesome/free-solid-svg-icons'

config.autoAddCss = false

library.add(fas)

export default defineNuxtPlugin(nuxtApp => {
	nuxtApp.vueApp.component('font-awesome-icon', FontAwesomeIcon, {})
})

I import '@fortawesome/fontawesome-svg-core/styles.css' on the css property of defineNuxtconfig

And this into my package.json dependencies

"@fortawesome/fontawesome-svg-core": "^6.2.1",
"@fortawesome/free-solid-svg-icons": "^6.2.1",
"@fortawesome/vue-fontawesome": "^3.0.3",

I need to use Icon without duplicate 👎 Sorry I don’t have codesandbox It’s on Chrome.

I used lodash, moment, primevue, tailwind, it’s for a big starter project

Issue with <font-awesome-icon />

image

If I remove the <font-awesome-icon /> tag :

Capture d’écran 2023-01-25 à 10 34 18

It’s duplicated only for the elements after the <font-awesome-icon /> tag

For example, If my tag is on the end of my app.vue

        <NuxtLayout>
		<NuxtLoadingIndicator />
		<h1> app.vue </h1>

		<NuxtPage />
		<font-awesome-icon class="text-active h-8" icon="fa-solid fa-user-secret" />
	</NuxtLayout>

Nothing is duplicated

Capture d’écran 2023-01-25 à 10 35 27

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Reactions: 10
  • Comments: 16

Most upvoted comments

I think the build is broken.

For me everything was working after I created a new component FontAwesomeIcon.vue with this content:

<script>
import FontAwesomeIcon from '@fortawesome/vue-fontawesome/src/components/FontAwesomeIcon'
export default FontAwesomeIcon;
</script>

and installed the required “humps” dependency.

This only began happening after Nuxt 3.1

I’m also having this issue. As a temporary fix I’ve wrapped the icon with <client-only></client-only>.

I can confirm this is happening on latest build of Nuxt 3 (edge) image Replacing the font-awesome-icon component seems to make the problem disappear. This only began happening after Nuxt 3.1

I had the same issue and what worked for me is i wrapped the icon on its own div

I’m experiencing the same issue in Nuxt 3.4 (and was also experiencing it before I upgraded from Nuxt 3.0.0-rc4).

It seems to only occur when the FontAwesomeIcon is placed inside of an <a>, <NuxtLink> or <RouterLink> tag. While this is happening, I receive plenty of the following messages in the server log:

Could not find one or more icon(s) { prefix: 'fas', iconName: 'external-link-alt' } {}
Could not find one or more icon(s) { prefix: 'fas', iconName: 'check' } {}    

Despite these warnings, the icon does generate correctly on the client side.

The solution by @mkoe-unitb is working as a fix for me (for both the duplication and all the related warning messages)