如何使用Uglifier和资产管道进行JS预处理?

时间:2012-08-27 13:51:26

标签: ruby-on-rails asset-pipeline uglifyjs

我正在尝试做什么(我不确定是否可行)是使用UglifierJS使用其AST'mangle'选项对象预处理JS文件。您可以将一个选项{定义:{ DEVMODE :true}}传递给UglifyJS:https://github.com/mishoo/UglifyJS#use-as-a-code-pre-processor

使用Rails的Uglify GEM基本上使用相同的,“定义”不应该是GEM实现的一部分,但我硬编码它来改变宝石的几行,所以它将作为一个包括在内更多选择。

无论如何,关键是我如何在开发中使用预处理方法,因此资产管道以这种方式提供JS文件?

1 个答案:

答案 0 :(得分:1)

我添加了对Uglifier的定义的支持。它尚未发布,但您可以根据git上的最新版本使用。

的Gemfile:

gem 'uglifier', :git => 'https://github.com/lautis/uglifier.git'

使用已使用的定义实例化Uglifier,例如

Uglifier.new(:define => {"DEVMODE" => true})

或者,在使用资产管道时,您可以将erb预处理器与JS代码一起使用。将您的文件命名为something.js.erb并编写类似

的代码
<% if Rails.env.development? %>
  console.log(debug)
<% end %>