How to integrate FontAwesome 5 Pro with React?
有人可以建议我如何将FontAwesome 5 Pro与React集成吗?
我知道有@ fortawesome / react-fontawesome软件包,例如@ fortawesome / fontawesome-free-regular,但是有没有办法包含专业版图标?
当我登录FontAwesome网站时,我可以下载pro-version JS,但是我猜这在React中没有用。
这是将Font Awesome 5 Pro与React(2018)集成的方法:
对于(B),转到您的package.json目录并创建一个
1 2 3 | // .npmrc @fortawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=<MY_AUTH_TOKEN_FROM_FONT_AWESOME> |
完成后,您现在应该能够安装专业版软件包。它们是根据官方的React适配器react-fontawesome提供的,可通过以下npm软件包获得:
- @ fortawesome / pro-solid-svg-icons
- @ fortawesome / pro-regular-svg-icons
- @ fortawesome / pro-light-svg-icons
之后,继续使用react-fontawesome软件包提供的用法。如果您安装了简装版本并通过react-fontawesome使用'Library'方法,那么在您的react代码中应该看起来像这样:
1 2 3 4 5 | // app.js import { library, config } from '@fortawesome/fontawesome-svg-core' import { fal } from '@fortawesome/pro-light-svg-icons' library.add(fal) |
最后,用法在组件文件中看起来像这样(在JS和TS风格中均可用):
1 2 3 4 5 6 7 8 9 10 | // Foo.jsx import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' const Foo = () => { return ( <FontAwesomeIcon icon={['fal', 'utensils']} /> ) } export default Foo |
如果您喜欢打字稿:
1 2 3 4 5 6 7 8 9 10 11 12 | // Foo.tsx import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { IconLookup } from '@fortawesome/fontawesome-svg-core' const Foo = () => { const icon: IconLookup = { prefix: 'fal', iconName: 'utensils' } return ( <FontAwesomeIcon icon={icon} /> ) } export default Foo |
您必须使用令牌才能通过NPM访问Font Awesome Pro。
手动下载图标并将其安装在本地是一种反模式,而不是Font Awesome团队期望您将Font Awesome Pro与Node和NPM一起使用的方式。
要访问Pro软件包,需要配置@fortawesome范围以使用您的TOKEN使用Font Awesome Pro NPM注册表,您可以在Font Awesome帐户设置中找到该令牌。
注意:如果您想在React Native中使用Font Awesome Pro,请查看:react-native-fontawesome-pro
tldr;使用
我今天遇到了这个问题,我认为有关如何使用Pro版本图标的主要问题尚未解决。官方文档并没有太大帮助。这是使用
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faFilePlus } from '@fortawesome/pro-light-svg-icons/faFilePlus';
然后:
注意使用
还请注意,这确实要求对NPM进行身份验证,如答案之一所述。
好,我自己解决了。我所做的是导入
所以在文件开头,我有类似
1 2 | import FontAwesomeIcon from '@fortawesome/react-fontawesome'; import faUser from '../font-awesome/faUser'; |
然后我用了
1 2 3 4 5 6 7 | render() { return() ( ... <FontAwesomeIcon icon={faUser} /> ... ); } |
这有点烦人,因为我需要手动导入每个图标,但是我想不出更好的解决方案。
我设法使其工作而不必导入每个图标,
1 2 3 4 | import FontAwesomeIcon from '@fortawesome/react-fontawesome'; import fontawesome from '@fortawesome/fontawesome' import solid from '@fortawesome/fontawesome-pro-solid' fontawesome.library.add(solid) |
然后使用图标作为
1 | <FontAwesomeIcon icon={solid.faPlusHexagon}/> |
我认为您可以通过将JS脚本和适当的CSS文件添加到index.html来使用它们。
假设如果您想使用很棒的默认字体而不安装任何软件包,则直接在index.html中包含文件,如下所示
1 2 | <script defer src="https://use.fontawesome.com/releases/v5.0.8/js/solid.js" integrity="sha384-+Ga2s7YBbhOD6nie0DzrZpJes+b2K1xkpKxTFFcx59QmVPaSA8c7pycsNaFwUK6l" crossorigin="anonymous"> <script defer src="https://use.fontawesome.com/releases/v5.0.8/js/fontawesome.js" integrity="sha384-7ox8Q2yzO/uWircfojVuCQOZl+ZZBg2D2J5nkpLqzH1HY0C1dHlTKIbpRz/LG23c" crossorigin="anonymous"> |