我的 .js 文件被压缩并且变量被修改,但函数名称在 Heroku 上没有被修改(运行最新的 Rails 3.2.8 和最新的 uglify 1.3.0 gem)。
根据https://github.com/lautis/uglifier#usage,“mangle ”选项默认为 true。下面是我的配置。
来自生产.rb:
config.assets.compress = true
config.assets.js_compressor = :uglifier
我也试过
config.assets.compress = true
config.assets.js_compressor = Uglifier.new(:mangle => true, :toplevel => true, :copyright => true)
但没有明显区别。
正如一位评论者所建议的那样,我确实尝试更改我的一个 .js 文件的内容,但没有产生任何影响。
Heroku 上压缩的预编译 .js 文件的输出示例:
show_slideout_notification=function(){jQuery(".slideout_notification").slideDown();var e=$(".slideout_notification .countdown
似乎变量名被破坏了,但函数名没有。
任何想法为什么函数名称没有被破坏?或者这是不想要的行为,因为这样就很难从我的 Rails/js 代码中调用函数(即 javascript onclick 事件)。或者,如果函数名称被损坏,那些 onclick 调用也会被重命名为损坏的名称?
谢谢 :-)