Font Awesome 可以与 Rails 7 中的导入映射一起使用吗?

2024-05-04

我是 Rails 7 的 importmap 的新手,文件说 https://github.com/rails/importmap-rails您可以固定 JavaScript 模块,然后导入它:

./bin/importmap pin react react-dom
import React from "react"
import ReactDOM from "react-dom"

与 Font Awesome 一起使用会如何? Font Awesome 的文档告诉你应该安装包 https://fontawesome.com/docs/web/setup/packages:

npm install --save @fortawesome/fontawesome-free

但是,当谈到使用它时,它说:

<script defer src="/your-path-to-fontawesome/js/brands.js"></script>
<script defer src="/your-path-to-fontawesome/js/solid.js"></script>
<script defer src="/your-path-to-fontawesome/js/fontawesome.js"></script>

我不完全清楚如何将其转换为 importmap。我试过:

<script defer src="https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/js/brands.js"></script>
<script defer src="https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/js/solid.js"></script>
<script defer src="https://ga.jspm.io/npm:@fortawesome/fo[email protected] /cdn-cgi/l/email-protection/js/fontawesome.js"></script>

因为固定导致:

pin "@fortawesome/fontawesome-free", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/js/fontawesome.js"

但这行不通。它失败并在浏览器的控制台中出现以下错误:


我写了一个我的博客上有更长的文章 https://pablofernandez.tech/2022/03/12/using-font-awesome-6-in-a-rails-7-project-that-uses-importmaps/,但要点已复制到此处。

我刚刚使它工作,但我不完全确定它为什么工作,所以我将不胜感激对此解决方案的任何见解或改进。与此同时,我很高兴与世界分享:

首先,您需要通过运行以下命令来固定 Font Awesome Javascript 包:

./bin/importmap pin @fortawesome/fontawesome-free @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons

其中补充道:

pin "@fortawesome/fontawesome-free", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/js/fontawesome.js"
pin "@fortawesome/fontawesome-svg-core", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/index.es.js"
pin "@fortawesome/free-brands-svg-icons", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/index.es.js"
pin "@fortawesome/free-regular-svg-icons", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/index.es.js"
pin "@fortawesome/free-solid-svg-icons", to: "https://ga.jspm.io/npm:@fortawesome/[email protected] /cdn-cgi/l/email-protection/index.es.js"

to your importmap.rb.

然后在你的app/javascript/application.js你需要添加:

import {far} from "@fortawesome/free-regular-svg-icons"
import {fas} from "@fortawesome/free-solid-svg-icons"
import {fab} from "@fortawesome/free-brands-svg-icons"
import {library} from "@fortawesome/fontawesome-svg-core"
import "@fortawesome/fontawesome-free"
library.add(far, fas, fab)

如果您不需要其中一个库,您可以跳过它们,但是跳过最后两次导入或将每个图标包添加到库中会使其不起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Font Awesome 可以与 Rails 7 中的导入映射一起使用吗? 的相关文章

随机推荐

  • detached 和 allocateCurrentContext 是什么意思?

    当我将作业添加到队列中时 DispatchWorkItemFlags 为我们提供了几个选项可供选择 public func sync
  • 为所有图像添加前缀(递归)

    我有一个包含 5000 多张图像的文件夹 全部带有 JPG 扩展名 我想要做的就是递归地向所有图像添加 thumb 前缀 我发现了一个类似的问题 重命名文件和目录 添加前缀 https stackoverflow com questions
  • 地址栏中的 https 锁和公司名称

    我注意到在查看贝宝的网站时 他们的公司名称位于 Chrome 中的锁定图标旁边 这是因为他们创作了 ssl 证书 还是您认为他们是如何实现这一目标的 这是我一直很好奇的事情 但在搜索过程中我很难找到任何答案 您需要一个称为 扩展验证 EV
  • PowerPoint 命令,例如在 Office javascript API 上插入幻灯片或应用等效主题

    我正在开发一个 PowerPoint 加载项 将来它将在 Office Store 中发布 但它是VSTO项目 C 和winforms 无法发布 根据我的搜索 它一定是 Office Web Add in 项目 清单 xml 和网页 我正在
  • 如何让 NHibernate 缓存获取的子集合?

    我有一个相当简单的条件查询来获取子集合 如下所示 var order Session CreateCriteria
  • 自动化脚本:如果 FieldA = 1,则将 FieldB 设置为“one”

    我试图将这个问题分解为可管理的部分 空间查询 https stackoverflow com questions 56587515 maximo spatial query 我认为第一步是创建一个自动化脚本这样做是这样的 从字段中获取值 用
  • AWS Lambda 上的 Google-chrome

    是否可以在带有容器的 AWS Lambda 中使用 puppeteer 运行 Google chrome 而不是 Chromium 当我在浏览器中创建新页面时脚本卡住 const page await browser newPage 来自
  • 为什么 React JS 不自动为动态子项生成键?

    在编写 ReactJS 代码时 我必须为动态子项提供键 例如 render const options this state const availableOptions options map opt gt return
  • VSTS 包源不从上游源提取包 (nuget.org)

    我已经为我们的开发团队在 VSTS 上设置了一个新的团队项目 并且正在使用Package Management用于发布 NuGet 包的扩展 我还启用了公众nuget orgfeed 作为我们内部包 feed 的上游来源 按照推荐here
  • 引导导航栏后面的空间

    使用引导程序navbar 我试图弄清楚如何使其不隐藏主体部分的顶部 实际上 使用这里推荐的方法可以很好地解决这个问题 Twitter Bootstrap 顶部导航栏阻挡页面顶部内容 https stackoverflow com quest
  • 敏感 SSIS 包参数字符串中的特殊字符导致包无效

    我的 SSIS 包上有一个敏感字符串参数 用于存储远程服务器的密码 但是 当字符串值包含大括号时 作业代理会在配置该步骤的包参数时引发错误 Microsoft SQL Server Management Studio 在命令行参数中检测到错
  • 如何使用 PHP 发送 OPTIONS 请求

    有谁知道如何使用 PHP 发送 OPTIONS 请求 我找不到执行此操作的curl setopt 我正在使用 php 5 6 7 我已经弄清楚了 GET POST DELETE 和 PUT 只需要选项 我已经尝试过以下 hd 的答案 ch
  • 计算以字符串形式给出的算术表达式

    我正在开发一个项目 需要计算以字符串形式给出的算术表达式的值 这就是我选择使用的方式 即运行字符串直到符号相乘 在此期间 我保留乘法字符串之前的数字 如果这些数字之前有符号 我会重置字符串 最后 当我计算乘号时 我检查接下来会发生什么并将其
  • 如何在Eclipse中设置默认Maven的Java?

    如果我创建新的Maven项目于Eclipse并基于快速入门原型 它出现J2SE 1 5 in Java Build Path窗口和 1 5 英寸Java Compiler JDK Compliance window 所以 我通常必须手动将其
  • 如何从其他表填充表的外键

    我有以下表格 其中translation是空的 我正在尝试填充 translation id translated language id template id language id langname langcode template
  • AngularJS:绑定中的拼写错误有调试模式吗?

    我只是浪费了半个小时寻找结果
  • 实体框架 - Linq NOT IN 查询

    我见过其他几个帖子提出类似的问题 但坦率地说我很困惑 我正在尝试在 EntityFarmework 和 Linq 中执行以下 sql 语句 但无法让 NOT IN 和 UNION 工作 SELECT LmsTeam FROM LmsTeam
  • AutoMapper ForMember 忽略不起作用

    在 MVC 应用程序中复制相同实体类型 但希望忽略复制主键 对现有实体进行更新 但是在下面的地图中将 Id 列设置为忽略不起作用 并且 Id 被覆盖 cfg CreateMap
  • params 具有默认参数值的参数[重复]

    这个问题在这里已经有答案了 我见过params参数的次数比我能说的还要多 并且总是删除它而不考虑它的含义 现在我已经了解了它的目的 我刚刚了解到的是params参数必须是参数列表中的最后一个 但这是我对指定默认值的参数的了解 例子 MyMe
  • Font Awesome 可以与 Rails 7 中的导入映射一起使用吗?

    我是 Rails 7 的 importmap 的新手 文件说 https github com rails importmap rails您可以固定 JavaScript 模块 然后导入它 bin importmap pin react r