【问题标题】:uglifier gem with rails 3.0带有rails 3.0的丑陋宝石
【发布时间】:2011-06-12 23:00:42
【问题描述】:

rails 3.1 默认有一个很棒的 gem,名为 uglifier 用于 js 缩小。

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

config.assets.js_compressor  = :uglifier

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

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

我可以写一个 rake 任务来执行它,这很好,但是还有其他方法吗?

更新:

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

【问题讨论】:

  • 为此我使用 Jammit (documentcloud.github.com/jammit) 取得了巨大成功。你可能想调查一下。
  • 我喜欢 jammit,“事情”是迟早我会将此应用程序迁移到 rails 3.1,并且我想使用全新的堆栈

标签: javascript ruby-on-rails ruby coffeescript


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2014-03-17
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多