Ruby on Rails中的源映射通过链接器

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

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

此外,如果有一些gem可以提供帮助,我想非常欢迎。

Rails 4也没有源映射。

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

现在解决这个问题的一个非常好的方法是在@SamSaffron的讨论中实现并在此解释: https : //github.com/discourse/discourse/blob/master/lib/tasks/assets.rake

要点,在sprockets预编译过程中添加“before”任务,并入侵编译过程以生成源映射文件和指令。

这种方法的好处是你不会丢失来自js和erb(* .js.erb)的文件中的东西,这在rails中很常见。

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