【发布时间】:2014-09-27 02:51:06
【问题描述】:
我想在我正在开发的 Rails 3.2 应用程序上添加源映射支持。据我所知,Sprockets 不支持生成源地图,从它的 github 页面看来,该功能计划用于 4.0。我正在使用 Sprockets 2.2,我认为猴子修补是唯一的方法。主 Sprockets 模块下的模块 Processing 允许访问 js_compressor 函数,该函数可以被修补以生成单个文件的源映射。但是,当 JS 文件合并时,我不知道如何添加它。我使用 Uglifier 2.4 作为压缩器。
该项目混合了 CoffeeScript、JS 和 EJS 文件。所以,我认为这就是链轮将它们编译在一起的方式。首先,它将 Coffeescript 和 EJS 转换为 JS,然后使用 js_compressor 压缩单个文件,然后将它们组合成组。现在,由于多个文件的源映射组合到同一个文件是一个文件。因此,一旦连接完成,我将需要稍微更改编译过程并让 js_compressor 运行文件。那么,任何人都可以帮助解决这个问题吗?甚至解释 sprockets 的编译过程以及使用的模块和涉及的功能都会有很大的帮助。目前我不关心为 CoffeeScript 代码制作源映射文件。甚至映射到他们转换后的 JS 文件也可以。
另外,如果有一些可以帮助解决这个问题的宝石,我想补充一下。
【问题讨论】:
-
这是一个可以提供帮助的宝石:github.com/markbates/coffee-rails-source-maps
-
我很久以前就看过这个 gem,从那时起我就为我的需要编写了一个自定义解决方案。当时那个 gem 的问题是它不适用于缩小的资产,这就是代码在生产中的方式,从 github repo 看来它似乎一年没有更新了。
-
太好了,然后用猴子补丁链接添加你的答案。
-
是的。现在已经计划这样做很长时间了。它可以工作,但此时它处于非常丑陋的状态。将对其进行重构并在此处发布。
-
我认识的人正在这样做,他们根本不使用资产管道,而是使用 grunt.js 或其他方式进行自制设置。我想要这个已经有一段时间了,但最终从来没有愿意潜入家庭资产管道的东西。祝你好运!
标签: ruby-on-rails sprockets source-maps