Thêm Font Awesome vào dự án Nuxt 3

Nội dung

Nếu là một Front-end dev chắc hẳn bạn đã từng sử dụng Font Awesome – một thư viện font icons rất đồ sộ và phổ biến. Và khi bạn đang triển khai một dự án Nuxtjs 3 và muốn sử dụng thêm bộ font icons này thì bạn đã đọc hướng dẫn cài đặt Font Awesome cho Nuxt 3 trên trang chủ của hãng.

Tuy nhiên khi cài đặt thành công Font Awesome với dự án Nuxt 3 của mình, tôi đã gặp phải 2 lỗi sau:

  1. Text trong button có sử dụng <FontAwesomeIcon /> bị nhân lên làm 2
  2. Lỗi trong console: Could not find one or more icon(s) { prefix: 'fab', iconName: 'facebook' } {}
Vue.js Fontawesome free brand icons couldn't be found https://stackoverflow.com/questions/73134823/vue-js-fontawesome-free-brand-icons-couldnt-be-found
Vue.js Fontawesome free brand icons couldn’t be found

Đầu tiên cùng tìm hiểu các cài đặt Font Awesome vào một dự án Nuxtjs 3 nhé:

Cài đặt packages

Sử dụng lệnh tương ứng với packages manager mà bạn đang sử dụng cho dự án của mình nhé:

// For NPM users npm install @fortawesome/fontawesome-free @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons @fortawesome/vue-fontawesome --save

// For Yarn users yarn add @fortawesome/fontawesome-free @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons @fortawesome/vue-fontawesome


// For Bun users
bun add @fortawesome/fontawesome-free @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons @fortawesome/vue-fontawesome

Vâng @fortawesome chứ không phải @fontawsome đâu các bạn nhé.

Tạo thêm Plugin cho nuxtjs

Bạn tạo thêm file trong /plugins/fontawesome.js với nội dung sau:

import { library, config } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { faGithub, faLinkedin, faTwitter } from '@fortawesome/free-brands-svg-icons'

config.autoAddCss = false
library.add(faGithub, faLinkedin, faTwitter)

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

Tiếp theo hãy làm chính xác đoạn này, đây là nội dung khác với tài liệu chính thống được viết trên trang chủ của Font Awesome

Mở nuxt.config.ts (hoặc nuxt.config.js) và thêm vào trong defineNuxtConfig:

export default defineNuxtConfig({
  css: [
    '@fortawesome/fontawesome-svg-core/styles.css'
  ],
  build: {
    transpile: [
      '@fortawesome/fontawesome-svg-core',
      '@fortawesome/free-brands-svg-icons',
      '@fortawesome/free-regular-svg-icons',
      '@fortawesome/free-solid-svg-icons',
      '@fortawesome/vue-fontawesome'
    ]
  }
})

Lưu ý: Đoạn build config sẽ sửa 2 lỗi mà đầu bài mình có nhắc đến

Sử dụng Font Awesome Icon trong dự án

Bây giờ bạn có thể sử dụng icon ở bất kỳ đâu trong dự án của bạn bằng cách thêm font-awesome-icon hoặc FontAwesomeIcon component. Ví dụ: <font-awesome-icon icon=”fa-brands fa-github” />

Anthony Nguyễn

Cây bút chính tại VietnamTutor

Bài viết cùng chuyên mục

Vibe coding và nợ kỹ thuật thầm lặng: kiểm soát bằng kỹ thuật ngữ cảnh

Vibe coding tăng tốc nhưng âm thầm tích lũy nợ kỹ thuật. Bài này giải thích vì sao và cách context engineering giúp bạn giữ codebase

Git stash: lưu tạm công việc dở và khôi phục đúng lúc

Git stash cho phép lưu tạm các thay đổi chưa commit để chuyển sang task khác, rồi khôi phục lại đúng lúc — tránh commit dở

Git rebase bị conflict: cách sửa hoặc abort an toàn

Hướng dẫn xử lý git rebase bị conflict: cách kiểm tra file lỗi, sửa conflict marker, tiếp tục rebase, abort an toàn và khi nào không

Bảo mật vibe coding: đừng để AI sinh lỗ hổng website

Bảo mật vibe coding không chỉ là quét lỗi sau khi AI viết code. Bài viết đưa ra checklist kiểm soát secret, prompt injection, dependency, auth

Kiểm thử code do AI tạo: danh sách kiểm tra trước khi deploy

Code do AI tạo cần được kiểm thử theo nhiều lớp trước khi lên website thật. Checklist này giúp bạn kiểm tra chức năng, bảo mật,

Lỡ push .env lên Git: cách xử lý secret bị lộ

Lỡ push .env lên Git không chỉ là lỗi xóa file. Hãy revoke hoặc rotate secret trước, rồi dọn Git history và ngăn sự cố lặp

Quy trình vibe coding 7 bước: từ ý tưởng đến prototype

Quy trình vibe coding hiệu quả bắt đầu từ giả thuyết kinh doanh, không phải prompt dài. Bài viết hướng dẫn 7 bước từ brief, dữ

Vibe coding cho doanh nghiệp: việc nào nên làm bằng AI?

Vibe coding cho doanh nghiệp hữu ích khi cần thử prototype, dashboard hoặc automation nhỏ. Bài viết giúp bạn phân loại use case theo mức rủi

AI viết code nhanh hơn review: kiểm soát thế nào?

Khi AI viết code nhanh hơn khả năng review của team, doanh nghiệp cần đổi cách kiểm soát chất lượng. Bài viết đưa ra framework thực

Git detached HEAD là gì? Cách thoát an toàn

Bài viết này giải thích detached HEAD trong Git, cách nhận biết trạng thái này và các bước thoát ra an toàn mà không mất code.

Rủi ro vibe coding: 9 lỗi khiến prototype khó vận hành

Bài viết này chỉ ra 9 rủi ro phổ biến khi vibe coding và cách kiểm soát để prototype không biến thành gánh nặng vận hành.

Vibe coding là gì? Cách thử ý tưởng phần mềm bằng AI

Vibe coding giúp chủ doanh nghiệp biến ý tưởng phần mềm thành prototype nhanh hơn bằng AI. Bài viết này chỉ ra khi nào nên thử,