Как обновить sass вместе с bootstrap-sass в моем приложении Rails?

В Gemfile у меня было:

gem 'bootstrap-sass', '~> 3.0.3.0'

Теперь я изменил его на следующее, которое является последней версией на момент написания этой статьи:

gem 'bootstrap-sass', '~> 3.1.1.1'

Взгляните на bootstrap-sass (3.0.3.0) и bootstrap-sass (3.1.1.1) на RubyGems.org, я вижу, что обе версии имеют зависимости времени выполнения:

sass ~> 3.2

Глядя на сам sass, я вижу, что он не имеет зависимостей во время выполнения и что его последняя версия:

gem 'sass', '~> 3.3.7'

После внесения упомянутого выше изменения (на bootstrap-sass) я запустил bundle и увидел следующее:

...
Using sass 3.2.19
Installing bootstrap-sass 3.1.1.1 (was 3.0.3.0)
...

Мой вопрос: почему sass не обновился и как я могу обновить его, не ссылаясь на него в Gemfile?

Для чего это стоит, вот еще немного информации:

-bash> grep sass Gemfile.lock 
    bootstrap-sass (3.1.1.1)
      sass (~> 3.2)
      sass-rails (~> 4.0)
    sass (3.2.19)
    sass-rails (4.0.3)
      sass (~> 3.2.0)
  bootstrap-sass (~> 3.1.1.1)
  sass-rails (~> 4.0.3)

person user664833    schedule 27.05.2014    source источник


Ответы (1)


Как вы заметили, обе версии bootstrap-sass (3.0.3.0 и 3.1.1.1) имеют зависимость:

sass ~> 3.2

Это означает, что им требуется самая высокая 3.2.x версия sass, но не 3.3. Вот что означает ~>, и именно поэтому ваша дерзость 3.2.19.

Поэтому, даже если вы прямо говорите:

gem 'sass', '~> 3.3.7'

Bundler не будет обновлять его, потому что видит, что bootstrap-sass зависит от более ранней версии sass.

person Ege Ersoz    schedule 27.05.2014
comment
Бывает. Удачи с вашим проектом. :) - person Ege Ersoz; 27.05.2014
comment
sass ~> 3.2 ... Это означает, что им требуется самая высокая версия sass 3.2.x, а не 3.3. Это неправильно. ~> 3.2 означает, что требуется от минимум 3.2.x до максимум (но не включая) 4.0. Например. Он будет соответствовать 3.3, 3.4, 3.5 и т. д., но не 4.0 или 4.1. - person Ryan McGeary; 17.11.2014
comment
Я не уверен, что это правда. См. здесь: stackoverflow.com/questions/5170547/ - person Ege Ersoz; 18.11.2014