有人可以建议我如何将FontAwesome 5Pro与React集成吗?
我知道有软件包@fortawesome/react-fontawesome,例如@fortawesome/fontawesome-free-regular,但是有没有办法包含图标的专业版?
当我登录 FontAwesome 网站时,我可以下载专业版 JS,但我想这在 React 中没有用。
以下是将 Font Awesome 5 Pro 与 React (2018) 集成的方法:
- 从Font Awesome的定价页面购买Pro许可证 成功
- 后,忽略成功页面。您应该登录到字体真棒。在登录状态下,转到本指南:字体真棒安装指南。
- 如果您已登录并且您的帐户中具有有效的许可证密钥,则本教程中的每个代码片段都将使用您的访问令牌。
- 现在,您可以通过 (A)
npm config set ...
全局安装许可证密钥,也可以通过 (B).npmrc
为每个项目本地安装许可证密钥。我推荐 (B),这样其他队友也可以安装 pro 包。 对于 (B),请转到 package.json 目录并创建一个
.npmrc
文件。在该文件中,粘贴指南中提供的代码片段。它应该看起来像这样:// .npmrc @fortawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=<MY_AUTH_TOKEN_FROM_FONT_AWESOME>
完成后,您现在应该能够安装专业软件包。它们根据官方的反应适配器 react-fontawesome 提供以下 npm 包:
- @fortawesome/亲固体-svg-icons
- @fortawesome/亲常规 svg 图标
- @fortawesome/亲光-svg-icons
- 因此,现在
npm install @fortawesome/pro-<MY_ICON_WEIGHT>-svg-icons
安装您选择的专业软件包。 此后,按照 react-fontawesome 包提供的方式继续使用。如果你安装了精简版并使用 react-fontawesome 的"库"方法,在你的反应代码中应该看起来像这样:
// app.js import { library, config } from '@fortawesome/fontawesome-svg-core' import { fal } from '@fortawesome/pro-light-svg-icons' library.add(fal)
最后,在组件文件中的用法如下所示(在JS和TS风格中都可用):
// Foo.jsx import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' const Foo = () => { return ( <FontAwesomeIcon icon={['fal', 'utensils']} /> ) } export default Foo
如果你喜欢打字稿:
// 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
TLDR;使用@fortawesome/pro-light-svg-icons
、@fortawesome/pro-regular-svg-icons
NPM 包。
我今天遇到了这个问题,我认为如何使用专业版图标的主要问题尚未得到解决。官方文档没有多大帮助。这是我使用faFilePlus
图标(轻型版本)所必须做的:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faFilePlus } from '@fortawesome/pro-light-svg-icons/faFilePlus';
然后:
<FontAwesomeIcon icon={faFilePlus} />
请注意 NPM 包的使用@fortawesome/pro-light-svg-icons
。这在英足总的官方文档中没有记录,我不得不在几个地方挖掘才能找到这个解决方案。官方文档只谈论"免费"图标的使用,但没有说在哪里可以找到轻量级、常规等效的 NPM 包。
另请注意,这确实需要按照其中一个答案中提到的对 NPM 进行身份验证。
您必须使用 TOKEN 才能通过 NPM 访问 Font Awesome Pro。
手动下载图标并在本地安装它们是一种反模式,而不是Font Awesome团队希望您将Font Awesome Pro与Node和NPM一起使用的方式。
访问 Pro 软件包需要您配置@fortawesome范围以使用您的TOKEN使用字体真棒专业 NPM 注册表,该令牌可以在您的字体真棒帐户设置中找到。
- 登录以查看您的令牌:https://fontawesome.com/account/services
- 登录后导航到此分步教程,它将在所有示例中包含您的令牌:https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers#installing-pro
- 安装 react-fontawesome并按照示例渲染图标:https://github.com/FortAwesome/react-fontawesome
注意:如果你想在React Native中使用 Font Awesome Pro,请查看:react-native-fontawesome-pro
好的,我自己解决了。我所做的是导入@fortawesome/react-fontawesome
.然后我手动下载了 FontAwesome 的专业包,并从/advanced-options/use-with-node-js/fontawesome-pro-light
文件夹中复制了所需的图标(有 JS 文件,例如faUsers.js
)到我的项目文件夹,并包含这些图标。
所以在文件的开头,我有类似的东西
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
import faUser from '../font-awesome/faUser';
然后我用了它
render() {
return() (
...
<FontAwesomeIcon icon={faUser} />
...
);
}
这有点烦人,因为我需要手动导入每个图标,但我想不出更好的解决方案。
我认为您将能够使用它们将JS脚本和适当的CSS文件添加到索引中.html
假设如果您想在不安装任何软件包的情况下使用默认字体真棒,那么直接将文件包含在索引中.html如下所示
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/solid.js" integrity="sha384-+Ga2s7YBbhOD6nie0DzrZpJes+b2K1xkpKxTFFcx59QmVPaSA8c7pycsNaFwUK6l" crossorigin="anonymous"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/fontawesome.js" integrity="sha384-7ox8Q2yzO/uWircfojVuCQOZl+ZZBg2D2J5nkpLqzH1HY0C1dHlTKIbpRz/LG23c" crossorigin="anonymous"></script>
我设法让它工作而无需导入每个图标,使用
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
import fontawesome from '@fortawesome/fontawesome'
import solid from '@fortawesome/fontawesome-pro-solid'
fontawesome.library.add(solid)
然后将图标用作
<FontAwesomeIcon icon={solid.faPlusHexagon}/>