angular-simple-format bower依赖项与rails-assets依赖项不同

时间:2014-12-05 15:11:11

标签: ruby-on-rails angularjs bundler bower

在我的Gemfile中,我使用rails-assets来加载角度和其他一些凉亭包:

gem 'rails-assets-angular', '~> 1.3.5'
#... others
gem 'rails-assets-angular-simple-format', '~> 0.9.2'

angular-simple-format似乎对任何版本的角度和任何版本的角度消毒感到满意:

"dependencies": {
  "angular": "*",
  "angular-sanitize": "*"
}

为什么bundle update --source rails-assets-angular-simple-format会给我这个错误:

Bundler could not find compatible versions for gem "rails-assets-angular":
  In Gemfile:
    rails-assets-angular-simple-format (~> 0.9.2) ruby depends on
      rails-assets-angular (= 1.2.21) ruby

    rails-assets-angular (1.3.5)

是否存在rails-assets在bower包和bundler之间施加的另一层依赖关系管理?我怎么知道它是什么?

2 个答案:

答案 0 :(得分:0)

虽然angular-simple-format接受任何版本的angular-angular-sanitize,如果你检查angular-sanitize的依赖关系,它需要角度1.21,这会导致冲突。

您必须在Gemfile的第一行强制使用rails-assets-angular到版本1.2.21。

答案 1 :(得分:0)

事实证明,rails-assets确实搞乱了依赖关系。 rails-assets-angular-simple-format gem指定angularjs的版本比原始的bower项目更严格。来自rails-assets-angular-simple-format.gemspec

spec.add_dependency "rails-assets-angular", "1.2.21"

要解决我将原始的bower项目复制到vendor/assets/javascripts并从Gemfile中删除了rails-assets gem。