4

我正在使用带有 Rails 4 的 Restangular,并且我希望告诉 rails 跳过预编译 Restangular,因为我使用的是官方缩小版本,它不会破坏变量名称以防止 Angular 依赖注入问题。

这是我的application.js.coffee

#= require jquery
#= require jquery_ujs
#= require unstable/angular
#= require underscore
#= require_self
#= require_tree ./vendor
#= require_tree ./configs
#= require_tree ./models
#= require_tree ./directives
#= require_tree ./filters
#= require_tree ./controllers
#= require_tree ./misc

window.app = angular.module "myApp", ["restangular"]

缩小的restangular.min.js文件位于“javascripts/vendor”目录下。它需要在 Angular 之后和我的所有控制器、模型和东西加载之前加载。

我如何告诉 Rails 资产管道跳过缩小 restangular 文件并仍然以正确的顺序加载它?

谢谢!

编辑:

我找到了解决方案并回答了我自己的问题。

4

2 回答 2

1

我也在寻找解决这个问题的方法——跳过第 3 方库的缩小——但与此同时:

# config/environments/production.rb
config.assets.js_compressor = Uglifier.new(:mangle => false)

然后将您的供应商库切换到未压缩的并让 Rails 处理它,直到您/我们找到更好的选择。

更多 Uglifier 选项在这里

于 2013-08-21T21:58:24.623 回答
0

解决方案:

我正在使用ngmin-rails gem 来避免我的角度代码的资产管道(Uglifier mangle)问题。我从来不知道像restangular这样的第三方库也可以通过ngmin-rails。所以我在预restangular.min.js压缩文件的顶部添加了以下行,它就像一个魅力!

var app = angular.module("myApp");

顺便说一句,我还从我的应用程序布局 html 中删除了这一行:<%= javascript_include_tag "vendor/restangular.min.js" %>

于 2013-08-24T00:58:43.577 回答