Nuxt3 Fontawesome 가져오기(2022/03/13)
8595 단어 TypeScriptFont AwesomeNuxt 3tech
Nuxt3에Foontawesome를 사용하려면 좀 까다로워서 썼어요.
지금β판이라 변경 가능성 있음)
물론 사용할 수 없습니다
@nuxtjs/fontawesome
. 이번에는 제가 직접 준비할게요.가져오기
우선 이쪽을 따라 필요한 창고에 넣으세요.
라이브러리 설치
$ npm i --save @fortawesome/fontawesome-svg-core
$ npm i --save @fortawesome/free-solid-svg-icons
Vue 3.x에 대해서 지금 프리랜서 버전이 있는 것 같아요.$ npm i --save @fortawesome/vue-fontawesome@prerelease
플러그인 가져오기
이번에는 기본적으로 이쪽https://github.com/FortAwesome/vue-fontawesome#nuxtjs을 답습하여plugies 폴더에서 제작
Fontawesome.ts
하여 가져옵니다.plugins/Fontawesome.ts
import { config, library } from '@fortawesome/fontawesome-svg-core'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
export default defineNuxtPlugin((nuxtApp) => {
// This is important, we are going to let Nuxt.js worry about the CSS
config.autoAddCss = false
// You can add your icons directly in this plugin. See other examples for how you
// can add other styles or just individual icons.
library.add(fas)
nuxtApp.vueApp.component('font-awesome-icon', FontAwesomeIcon)
})
plugens 내의 최고급 파일을 자동으로 읽을 수 있습니다. 이렇게 하면 완성됩니다.nuxt.conf.ts에서 다음을 추가합니다.
nuxt.config.ts
css: [
'@fortawesome/fontawesome-svg-core/styles.css'
]
app.vue에 구성 요소 추가하기app.vue
<template>
<font-awesome-icon icon="coffee" />
</template>
npm run dev
아이콘 표시 -마지막에 끝날 줄 알았는데 잘 되지 않았다.
ES 모듈 문제
bulid
npm run start
를 시도하면 대량의 오류가 발생할 수 있습니다.Named export 'config' not found. The requested module '@fortawesome/fontawesome-svg-core' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:
import pkg from '@fortawesome/fontawesome-svg-core';
const { config, library } = pkg;
at ModuleJob._instantiate (node:internal/modules/esm/module_job:124:21)
at async ModuleJob.run (node:internal/modules/esm/module_job:181:5)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
at async file://./.output/server/chunks/app/render.mjs:523:24
at async renderMiddleware (file://./.output/server/chunks/app/render.mjs:578:20)
at async handle (file://./.output/server/node_modules/h3/dist/index.mjs:268:19)
아, 또 모조에 관한 일인데 요즘 속수무책이야.Common 모듈도 import이 가능하지만 전부는 아닙니다. 그렇죠.
확실히
@fontawesome/fontawesome-svg-core
폴더index.es.js
index.js
서류가 두 개 있어요.이게 이유죠.
(자세한 내용은 아래에 설명되어 있지 않습니다.)
대응 방법은
다음 내용 추가
nuxt.config.ts
build: {
transpile: [
'@fortawesome/fontawesome-svg-core',
'@fortawesome/free-solid-svg-icons',
'@fortawesome/vue-fontawesome',
],
},
이렇게 하면build도 틀리지 않을 겁니다.Common 모듈과 ES 모듈의 주제에 대해 깊은 논쟁이 벌어지고 있습니다.
(이전에는) Action Script를 사용할 때 ES라는 느낌을 받았습니다.
낡은 자원을 어떻게 처리합니까?그런 거죠?(깊이 들어가지 않았다.)
본편과 다르지만 Nuxt3은 베타인데 업데이트 때마다 ERR와 WARN이 나오니 번거롭네요.
Reference
이 문제에 관하여(Nuxt3 Fontawesome 가져오기(2022/03/13)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/itsuo/articles/24e4f16eb0a190텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)