我想选择性地压缩Rails 3.2应用程序中的一些JavaScript文件,但仍然拥有生产环境中单个捆绑文件提供的所有js资源。选择性导轨3.2每个文件的资产流水线压缩
语法这样,应用程序/资产/ Java脚本/ application.js中的文件里,使用传递给最后3个链轮require
指令我希望编造:compress => false
选项解释什么,我想要的目的。
// Contents of app/assets/javascripts/application.js
//
//= require jquery
//= require jquery_ujs
//= require angular-1.0.1/angular, :compress => false
//= require angular-1.0.1/angular-resource, :compress => false
//= require products, :compress => false
那么的jquery.js和jquery_ujs.js文件将被压缩(由Rails的资产编译,它默认使用UglifierJS),其余3个文件将不会被压缩,但它们将被捆绑到应用程序中.js包。
有没有办法做到这一点?
动机是products.js文件包含一个angularjs控制器,该控制器利用角度的依赖注入,这需要特定的变量名称,例如$scope
和$http
未被更改。
非常感谢米兰,在Rails 3.2.6中为我工作,angularjs现在工作正常。 – 2012-08-14 20:08:32
出于好奇,'Sprockets :: LazyCompressor'部分是做什么的? – 2013-04-23 14:00:10
几乎在rails中的所有东西都只是“shell”,每个特定模式的具体实现都是一般化的,因此您可以切换到其他选项。链轮是做压缩,sass /少量预编译......以及许多其他事情的引擎。 Sprockets :: LazyCompressor.new行为js压缩创建了惰性加载器,您可以使用任何东西。默认情况下,使用uglifier来压缩文件,上面的行只是告诉uglifier避免重命名方法参数的方法。 – 2013-04-23 22:08:21