vue 引入 fontawesome 报错 Could not find one or more icon(s) 解决
在 vue 项目中引用 fontawesome , 按照官方说明如下步骤操作
1、 终端中执行
$ npm i --save @fortawesome/fontawesome-svg-core
$ npm i --save @fortawesome/free-solid-svg-icons
$ npm i --save @fortawesome/vue-fontawesome
2、src/main.js 中引入注册对应包(剧透下解决方法之一: 把下面代码中的 faUserSecret 都改成 fas 就 ok 了)
import Vue from 'vue'
import App from './App'
import { library } from '@fortawesome/fontawesome-svg-core'
import { faUserSecret } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' library.add(faUserSecret) Vue.component('font-awesome-icon', FontAwesomeIcon) Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
3、src/App.vue 中使用
<template>
<div id="app">
<font-awesome-icon icon="user-secret" />
</div>
</template> <script>
export default {
name: 'App'
}
</script>
4、ok 运行, 一个小黑人图标成功显示。但当我试图使用别的图标时
<font-awesome-icon icon="play" />
我喜提了如下报错 ( ̄O ̄;)
Could not find one or more icon(s) {
prefix: "fas",
iconName: "play"
}
无脑继续看官网文档,复制粘贴了几个例子进去,都是报错。于是跟进源码到这段:
function findIconDefinition(iconLookup) {
var _iconLookup$prefix = iconLookup.prefix,
prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,
iconName = iconLookup.iconName;
if (!iconName) return;
return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
}
根据传入的 icon 属性, 会去 library.definitions 里面找图标数据, 这时候能看到 library.definitions 的值是:
{
"fas": {
"user-secret": [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6...babalabala..."]
}
}
才恍然大悟,真是被自己蠢哭了。一开始从官网复制粘贴的太顺手,忽略了这里
import {faUserSecret} from '@fortawesome/free-solid-svg-icons'
我只引用了 faUserSecret 一个图标,同时 library 里也只加了这一个
library.add(faUserSecret)
上面原因找到了,解决就简单了。
解决方案
方案一:每次按需引入,只添加当前页面需要使用的图标
import {faUserSecret,faPlay} from '@fortawesome/free-solid-svg-icons'
ibrary.add(faUserSecret,faPlay)
<font-awesome-icon icon="user-secret"
方案二:一次性引入整个图标库,后面想用哪个用哪个,不用反复的去添加注册
import {fas} from '@fortawesome/free-solid-svg-icons'
ibrary.add(fas)
<font-awesome-icon icon="user-secret" />
<font-awesome-icon icon="play" />
以上两种方案,各有千秋没有对错,看实际情况用就是了。
( ps: 点进 /@fortawesome/free-solid-svg-icons/ 在 index.d.ts 里面可以找到所有可引用的图标定义 )
vue 引入 fontawesome 报错 Could not find one or more icon(s) 解决的更多相关文章
- 【Vue.js】vue引入组件报错:该组件未注册?
[Vue warn]: Unknown custom element: <QuestionnaireOption> - did you register the component cor ...
- vue引入elementUI 报错
在main.js里面引入import 'element-ui/lib/theme-default/index.css'中报错,无法启动项目,这是把package.json里面的webpack改成 1 ...
- vue引入iconfont报错
参考链接:https://blog.csdn.net/weixin_37215881/article/details/89237213
- electron-vue 引入OpenLayer 报错 Unexpected token export
electron-vue 引入OpenLayer 报错 Unexpected token export 解决办法: 在 .electron-vue/webpack.renderer.config.js ...
- delphi 调用Webservice 引入wsdl 报错 document empty
delphi 调用Webservice 引入wsdl 报错 document empty 直接引入wsdl 地址报错 document empty 解决办法:在浏览器里保存为xml文件,然后在开发环境 ...
- Vue自定义指令报错:Failed to resolve directive: xxx
Vue自定义指令报错 Failed to resolve directive: modle 这个报错有2个原因: 1.指令单词拼错 2.Vue.directive() 这个方法没有写在 new Vue ...
- 新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”
新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”, 其主要原因是文件夹的权限问题,手动将项目文件夹权限更改为可读可写就OK,具体操 ...
- php Yaf_Loader::import引入文件报错的解决方法
php Yaf_Loader::import引入文件报错的解决方法 改下配置文件就行<pre>yaf.use_spl_autoload=1</pre> 也可以PHP动态修改 毕 ...
- vue-cli 引入stylus报错
在App.vue页面添加以下代码报错: <style lang="stylus" rel="stylesheet/stylus"> </sty ...
随机推荐
- 推荐一个比 ls 命令速度快 100 倍的文件目录浏览神器
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- 【管理学】PDCA
- 牛客小白月赛5 D 阶乘 数学
链接:https://www.nowcoder.com/acm/contest/135/D来源:牛客网 题目描述 输入描述: 输入数据共一行,一个正整数n,意义如“问题描述”. 输出描述: 输出一行描 ...
- Keras之注意力模型实现
学习的一个github上的代码,分析了一下实现过程.代码下载链接:https://github.com/Choco31415/Attention_Network_With_Keras 代码的主要目标是 ...
- JS-DOM ~ 02. 隐藏二维码、锁定、获取输入框焦点、for循环为文本赋值、筛选条件、全选和反选、属性的方法操作、节点的层次结构、nodeType
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- pt工具校验主从数据一致性之dsns方式
mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了.主要说一下通过dsns方式发现从库的一种方式. p ...
- 适合C++のOIer平日写题的开场模板
上面的#define还是较充足的,快读模板也有,freopen也提前打好了,比较适合OIer(C++)平时刷题和考试的开场. (纯原版仅供SJZEZのORZ队&AFO队使用) (您老把开头的注 ...
- CentOS 7 下网络无法访问 Failed to start LSB: Bring up/.
[root@localhost Desktop]# ping 192.168.2.1PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.64 byt ...
- Java获取两个日期之间的所有日期集合
1.返回Date的list private List<Date> getBetweenDates(Date start, Date end) { List<Date> resu ...
- python-re正则表达--持续更新
| 模式 | 描述| |---- |----| | \w | 匹配字母数字及下划线 | | \W | 匹配非字母数 ...