buefy 中的字体真棒图标

Ром*_*тев 6 font-awesome vue.js buefy

我正在尝试将我的项目从bulma + jQuery切换到buefy。我从 CDN加载了buefyvuefont 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)


Ami*_*dem 6

这是在 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 包


Ros*_*don 3

如果你运行:

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 导入似乎不起作用。