在我的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之间施加的另一层依赖关系管理?我怎么知道它是什么?
答案 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。