uglifier gem with rails 3.0

时间:2011-06-12 23:00:42

标签: javascript ruby-on-rails ruby coffeescript

rails 3.1默认为js minification的一个名为uglifier的伟大宝石。

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

config.assets.js_compressor  = :uglifier

我正在使用另一个项目,rails 3.0,我也想使用相同的gem。我搜索了一些信息,但我找不到任何方向。我在rdoc找到的东西是

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

我可以写一个rake任务来执行它,没关系,但还有其他方法吗?

更新

我正在使用咖啡师和咖啡因,所以也许我可以添加一些东西给咖啡师生成已经缩小的js

1 个答案:

答案 0 :(得分:1)

Barista有钩子。如果你查看你的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