Ruby on rails Rails资产管道和javascript文件-维护换行符以帮助调试

Ruby on rails Rails资产管道和javascript文件-维护换行符以帮助调试,ruby-on-rails,asset-pipeline,uglifyjs,Ruby On Rails,Asset Pipeline,Uglifyjs,我最近从一个城市搬到了另一个城市。除了一些初期问题,一切都进展顺利 然而,我最近开始在生产中遇到一些脚本错误,并意识到我几乎不可能调试它们。我之前已经将Jammit配置为保留换行符,但在其他情况下删除javascript文件中的所有空白。这是为了确保如果我看到运行时错误,我将能够找到有问题的行,并希望找出问题所在。使用Rails资源管道和默认的:uglifier压缩器,似乎所有空白都被删除,包括换行符,因此我的脚本错误不会告诉我问题出在代码中的什么地方 有人知道如何配置Rails资源管道来保留换

我最近从一个城市搬到了另一个城市。除了一些初期问题,一切都进展顺利

然而,我最近开始在生产中遇到一些脚本错误,并意识到我几乎不可能调试它们。我之前已经将Jammit配置为保留换行符,但在其他情况下删除javascript文件中的所有空白。这是为了确保如果我看到运行时错误,我将能够找到有问题的行,并希望找出问题所在。使用Rails资源管道和默认的:uglifier压缩器,似乎所有空白都被删除,包括换行符,因此我的脚本错误不会告诉我问题出在代码中的什么地方

有人知道如何配置Rails资源管道来保留换行符,以便调试代码吗


马特

在你的
产品中设置。rb

config.assets.compress = false
运行
rake资产:预编译
不会损坏您的资产

UPD:

所谓的压缩意味着(除其他外):删除换行符和注释。 但是,如果您想混淆变量并保存一些可读性,请使用:

# in production.rb
config.assets.compress = true
config.assets.js_compressor = Uglifier.new(:beautify => true) if defined? Uglifier

更多选项请参见此处:。

谢谢,但这不是我想要的。我确实想压缩文件,我只想保留换行符,以便将代码拆分为多行。如果要使代码既难看又可读,请参阅UPD;)尝试了此操作,但得到一个未初始化的常量MyApp::Application::Uglifier
错误。我意识到这是因为我的gem集合中没有加载Uglifier,但我不想在我的生产gem集合中包含Uglifier,因为我在本地编译我的资产,并将编译后的资产推送到生产中。关于如何绕过这个问题,使Uglifier仅在编译资产时加载,您有什么想法吗?@MatthewO'Riordan
config.assets.js_compressor=Uglifier.new(:beautify=>true),如果定义的话?丑八怪
。反映在答案中。@jdoe,只有在定义了它的情况下才会运行,这显然不是因为他的错误,因此他传递特定参数的尝试是无效的