Ruby on Rails 中通过 sprocket 进行源映射

2024-03-23

我想在我正在开发的 Rails 3.2 应用程序上添加源映射支持。据我所知,Sprockets 不支持生成源地图,从其 github 页面来看,该功能似乎计划在 4.0 中使用。我正在使用 Sprockets 2.2,我认为猴子修补是唯一的方法。主链轮模块下的处理模块可以访问 js_compressor 函数,可以修补该函数以生成单个文件的源映射。但是,我不知道当 JS 文件合并时如何添加它。我使用 Uglifier 2.4 作为压缩器。

该项目混合了 CoffeeScript、JS 和 EJS 文件。所以,我认为这就是链轮将它们编译在一起的方式。首先,它将 Coffeescript 和 EJS 转换为 JS,然后使用 js_compressor 压缩单个文件,然后将它们分组连接。现在,由于组合到同一文件的多个文件的源映射是一个文件。因此,一旦连接完成,我将需要稍微更改编译过程并让 js_compressor 运行文件。那么,有人可以帮忙解决这个问题吗?即使解释一下 sprocket 的编译过程以及使用的模块和涉及的功能也会有很大的帮助。我目前不关心为 CoffeeScript 代码制作源映射文件。甚至映射到转换后的 JS 文件也可以。

另外,想补充一下,如果有一些宝石可以帮助解决这个问题,那将是非常受欢迎的。


Rails 4 也没有源映射。

据我所知,截至今天,这只是 Rails 5 的一部分。

现在解决这个问题的一个非常好的方法是由 @SamSaffron 在 discourse 中实现的,并在这里进行了解释:https://github.com/discourse/discourse/blob/master/lib/tasks/assets.rake https://github.com/discourse/discourse/blob/master/lib/tasks/assets.rake

要点是,在链轮预编译过程中添加一个“之前”任务,并侵入编译过程以生成源映射文件和指令。

这种方法的好处是,您不会丢失 js 和 erb (*.js.erb) 文件中的内容,这在 Rails 中很常见。

我认为修补整个链轮管道有点滥用且有风险。

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

Ruby on Rails 中通过 sprocket 进行源映射 的相关文章

随机推荐

  • 在后台运行时查看随机 ngrok URL

    当我启动 ngrok 客户端时 ngrok tcp 22它在前台运行 我可以看到随机生成的转发URL 例如tcp 0 tcp ngrok io 12345 gt localhost 22 如果我在后台运行 ngrok tcp 我找不到任何方
  • 如何从 PHP 调用 dup2() 系统调用?

    有一个eio dup2 http php net manual en function eio dup2 php函数来自Eio PECL 扩展 http php net manual en intro eio php但我对所有异步和事件循环
  • WinForms 表单冻结

    在表单 F1 上我有一个按钮 如果我创建另一个表单 我们称之为F2 并显示它没有问题 但我想做这样的事情 我的应用程序中的某些线程正在运行连接并侦听来自服务器的消息 当消息到达时 我的主窗体被注册以获取运行函数的事件 从该函数中 我尝试创建
  • 如何列出命名空间的功能?

    我想知道如何列出 Clojure 命名空间的所有函数 我已经做了一些研究 但还没有做到这一点 我已经了解了如何使用 show 方法列出 Java 类的方法 show java awt Graphics 为了列出 Clojure 命名空间的功
  • Python:concurrent.futures 如何使其可取消?

    Python concurrent futures 和 ProcessPoolExecutor 提供了一个简洁的接口来调度和监视任务 期货甚至provide https docs python org 3 library concurren
  • Angular 4 验证器可同时检查 2 个控件

    我有一个带有 2 个控件 port start 和 port end 的反应式表单 它们具有以下要求 两者都必须有一个值 它们的值必须介于 0 到 65535 之间 port start 值必须小于 port end 值 这是我到目前为止所
  • 在 SimpleXML 中美化/格式化输出

    我有一个 simplexml 脚本 用于发布从表单输入的数据 xml simplexml load file links xml sxe new SimpleXMLElement xml gt asXML person sxe gt add
  • 无法使用SED快速编辑文件

    该文件最初是 cat so app yaml application SO 我运行以下命令 我得到一个空文件 sed s SO so so app yaml gt so app yaml cat so app yaml 如何使用 SED 编
  • Silverlight Windows Phone 7:从 URL 加载图像

    我得到下面的代码 它试图将网络上的图像加载到图像控件中 当我运行它时 我在给定的行上收到错误 不允许网络访问 private void button1 Click object sender RoutedEventArgs e WebCli
  • 使用CRTP时如何避免错误?

    Using CRTP http en wikipedia org wiki Curiously recurring template pattern有时我会写这样的代码 this was written first struct Foo B
  • 水平步骤中的等待栏,matlab

    我正在尝试修改这段代码 h waitbar 0 Please wait for i 1 10 computation here waitbar i 10 end close h 我如何将 waitbar 分为 10 个步骤 我的意思是它应该
  • 如何从 JavaScript 中的字符串中去除 HTML 标签? [复制]

    这个问题在这里已经有答案了 如何在 JavaScript 中从字符串中去除 HTML cleanText strInputCode replace lt gt gt g 蒸馏自这个网站 web archive https web archi
  • 在一个查询中搜索多个表 (MySQL/PHP#)

    我有大约 15 个表 每个表包含大约 10 000 行和大约 30 列 我希望我的网站的用户能够搜索零件编号或产品 说明并显示结果 不管它在哪张桌子上 每个产品页面与每个对应表的名称相同 因此 如果找到产品 它只会显示正确页面的链接 文件名
  • 如果没有 google-services.json,Google 服务插件将无法运行 [重复]

    这个问题在这里已经有答案了 文件 google services json 丢失 Google 服务插件无法运行 自从我删除了我的内容后 我收到此错误代码google services json我的项目中的文件 现在解决这个问题的明显方法是
  • Spark CDH 5.7 上的 Hive - 无法创建 Spark 客户端

    我们在使用 Spark 引擎执行 Hive 查询时收到错误 执行spark任务失败 出现异常 org apache hadoop hive ql metadata HiveException 创建失败 Spark 客户端 失败 执行错误 返
  • 指定网格中的行数和列数

    有没有办法指定网格中的行数和列数 我的代码给了我 3 列和 4 行 我想要 4 列和 3 行 有没有办法用 CSS 和 HTML 来实现这一点 我也愿意使用 Bootstrap 尝试正确编辑下面的代码 grid container disp
  • 如何在terraform创建后显示ec2实例的公共IP

    我想在 terraform 执行后显示 terraform 创建的 aws instance 的 public ip 但是 仅显示第一台服务器的全局 IP 我的源代码如下 resource aws instance main count 3
  • 合并两个按月计数的查询

    灵感来自这个问题在Meta上 https meta stackexchange com questions 57692 have the new bounty changes caused more bounties to appear 我
  • MVC3全球化:模型绑定之前需要全局过滤器

    目前 我有一个名为的全局过滤器GlobalizationFilter检查路由值 cookie 和浏览器语言标头以确定请求的正确区域性设置 public override void OnActionExecuting ActionExecut
  • Ruby on Rails 中通过 sprocket 进行源映射

    我想在我正在开发的 Rails 3 2 应用程序上添加源映射支持 据我所知 Sprockets 不支持生成源地图 从其 github 页面来看 该功能似乎计划在 4 0 中使用 我正在使用 Sprockets 2 2 我认为猴子修补是唯一的