2

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

与 Rails 一起使用的 Uglify GEM 基本上使用相同的,“定义”不应该是 GEM 实现的一部分,但我对其进行了硬编码以更改 gem 的几行,因此它将作为一个选项包含在内。

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

4

1 回答 1

1

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

宝石文件:

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 %>
于 2012-08-28T19:50:44.520 回答