2011-06-12 175 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