sass-rails 依赖于 sass v3.2,我需要 sass v3.4。 sass-rails' "gemfiles" 目录有什么用,它会帮助我使用 sass v3.4 吗?

sass-rails depends on sass v3.2, I need sass v3.4. What is sass-rails' "gemfiles" directory for, and will it help me use sass v3.4?

我有一个项目需要 sass v3.4,但是 sass-rails 目前在其 sass-rails.gemspec 中有这个:

s.add_dependency 'sass',            '~> 3.2.0'

最新版本(master分支)更倒退了:

s.add_dependency 'sass',            '~> 3.1'

从 github,我可以看到 sass-rails 与 sass v3.4 一起工作并对其进行了测试。它还有一个奇怪的 "gemfiles" 目录,里面有一堆这样的文件 Gemfile-sass-3-4:

source "https://rubygems.org"

# Specify your gem"s dependencies in sass-rails.gemspec
gemspec path: ".."

gem "rails"
gem "sass", "~> 3.4.0"

如何使用这个文件?或者我如何利用 sass 3.4 而无需分叉 sass-rails git 存储库并仅更改它?这可能吗?

我能找到的最好的办法就是把它放在我的 Gemfile 中:

gem 'sass', '~> 3.4'

但是包更新给我这个错误:

$ bundle update sass
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies.......
Bundler could not find compatible versions for gem "sass":
  In Gemfile:
    sass-rails (~> 4.0.3) ruby depends on
      sass (~> 3.2.2) ruby

    sass (~> 3.4) ruby

还有一个(相关的)问题...为什么 sass-rails 使用这么旧的 sass 版本?

版本说明符“~> 3.1”与“>= 3.1”和“< 4.0”的含义相同,因此最新版本是向前的而不是向后的。确保从 Gemfile 中的 sass-rails 中删除任何版本说明符,然后删除 运行:

bundle update sass-rails sass

如果您没有任何其他与旧版本 sass 绑定的 gem,则应该对其进行升级。如果这不能解决问题,post 您的 Gemfile.lock 的内容,这样我们就可以看到哪些其他 gem 可能存在冲突。

PS。 sass-rails 存储库中的 gemfiles 目录用于支持在 travis-ci.org.

上针对多个版本的 sass 进行自动测试