Ром*_*тев 6 font-awesome vue.js buefy
我正在尝试将我的项目从bulma + jQuery切换到buefy。我从 CDN加载了buefy、vue和font awesome。(buefy@0.6.7, vue@2.5.17, font awesome 5.2.0)。我对图标的主要问题。我的项目使用字体真棒图标。并且默认的 buefy iconPack 是 Material Design。它必须支持字体真棒。我试图更改默认图标包,但这没有任何作用:
Vue.use(Buefy.default, {
defaultIconPack: 'fas',
});
Run Code Online (Sandbox Code Playgroud)
同样没有:
Vue.use(Buefy, {
defaultIconPack: 'fas',
});
Run Code Online (Sandbox Code Playgroud)
所以我需要为每个图标明确指出图标包。
第二个问题是,即使在这种情况下,buefy 也会补充fa-lg说我根本不需要。例如对于 b-tab-item 组件
<b-tab-item label="Similarity" icon="search" icon-pack="fas"></b-tab-item>
Run Code Online (Sandbox Code Playgroud)
它呈现:
<i class="fas fa fa-search fa-lg"></i>
Run Code Online (Sandbox Code Playgroud)
是否有可能改变这种笨拙的行为?
Moh*_*her 15
对于任何可能仍在为此挣扎的人。我的问题通过在我的main.js:
import Buefy from 'buefy'
import 'buefy/dist/buefy.css'
import { library } from '@fortawesome/fontawesome-svg-core';
// internal icons
import { fas } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
library.add(fas);
Vue.component('vue-fontawesome', FontAwesomeIcon);
Vue.use(Buefy, {
defaultIconComponent: "vue-fontawesome",
defaultIconPack: "fas",
customIconPacks: {
fas: {
sizes: {
default: "lg",
"is-small": "1x",
"is-medium": "2x",
"is-large": "3x"
},
iconPrefix: ""
}
}
});
Run Code Online (Sandbox Code Playgroud)
确保使用npm以下命令安装所有依赖项:
$ npm i --save @fortawesome/fontawesome-svg-core
$ npm i --save @fortawesome/free-solid-svg-icons
$ npm i --save @fortawesome/vue-fontawesome
Run Code Online (Sandbox Code Playgroud)
那么你可以在你的组件中使用它,如下所示:
<b-icon
pack="fas"
icon="user"
size="is-large"
type="is-success"></b-icon>
Run Code Online (Sandbox Code Playgroud)
这是在 buefy 中对我有用的代码
在 main.js 中
import { library } from '@fortawesome/fontawesome-svg-core'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
library.add(fas)
Vue.component('font-awesome-icon', FontAwesomeIcon)
Vue.use(Buefy, { defaultIconPack: 'fas' })
Run Code Online (Sandbox Code Playgroud)
并在index.html
放置在头部标签中
<link
rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/"
crossorigin="anonymous"
/>
Run Code Online (Sandbox Code Playgroud)
确保首先你添加了fortawesome npm 包
如果你运行:
yarn add @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)
然后导入:
import '../node_modules/@fortawesome/fontawesome-free/js/all.js'
Run Code Online (Sandbox Code Playgroud)
然后它应该可以工作。从 CDN 导入似乎不起作用。