2011-06-12 76 views
1

导轨3.1默认情况下有一个伟大的宝石名为uglifier js缩小。uglifier宝石与导轨3.0

要启用它,我们只需要调用

config.assets.js_compressor = :uglifier 

我在另一个项目工作,导轨3.0,我想用以及相同的宝石。我搜索了一些信息,但我找不到任何方向。东西,我发现,在RDoc的是

require 'uglifier' 
Uglifier.new.compile(File.read("source.js")) 
# => js file minified 

我可以写一耙的任务可能要执行它,它的罚款,但有任何其他方式?

更新:

我使用的咖啡师和CoffeeScript的,所以也许有东西,我可以添加到咖啡师产生已经过压缩

+1

我已经使用Jammit(http://documentcloud.github.com/jammit/)为此获得了巨大的成功。你可能想看看它。 – Dogbert 2011-06-12 23:03:04

+0

我喜欢jammit,“事情”是,不久或将来我会将此应用程序迁移到rails 3.1,并且我想要使用全新的堆栈 – 2011-06-12 23:23:11

回答

1

咖啡师有钩的JS。如果你看看你的config/initializers/barista_config.rb,它会告诉你所有的钩子是什么。所以,例如,我决定不与Jammit一起去,而是使用JSMin gem来缩小。在我的barista_config.rb里面我把这个:

Barista.configure do |c| 
    c.on_compilation do |path| 
    if Rails.env.production? 
     puts "+++ Barista: Compressing #{path} for production environment +++" 
     compressible = File.read(path) 
     File.open(path, 'w'){|f| f.write(JSMin.minify(compressible))} 
    end 
    end 
end