【问题标题】:angular-simple-format bower dependencies different from rails-assets dependenciesangular-simple-format bower 依赖项不同于 rails-assets 依赖项
【发布时间】:2014-12-05 15:11:11
【问题描述】:

在我的 Gemfile 中,我使用 rails-assets 来加载 angular 和许多其他 bower 包:

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

angular-simple-format 似乎对任何版本的 angular 和任何版本的 angular-sanitize 都很满意:

"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 之间是否存在另一层依赖管理?我怎么看它是什么?

【问题讨论】:

    标签: ruby-on-rails angularjs bundler bower


    【解决方案1】:

    虽然 angular-simple-format 接受任何版本的 angular 或 angular-sanitize,但如果您检查 angular-sanitize 的依赖项,它需要 angular 1.21,这会导致冲突。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-09-17
        • 1970-01-01
        • 2015-03-09
        • 1970-01-01
        • 1970-01-01
        • 2013-08-18
        • 2014-10-26
        • 2013-10-20
        • 1970-01-01
        相关资源
        最近更新 更多