Обновление sass-rails gem до 5.0 дает предупреждение об отказе

Мы обновили до sass-rails версии 5.0.0 и получаем это предупреждение об отказе:

DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /Users/foo/Projects/foo/app/assets/stylesheets/foo.css.scss to /Users/foo/Projects/foo/app/assets/stylesheets/foo.scss. (called from _app_views_layouts_application_html_erb__1560597815210891605_70190441246060 at /Users/foo/Projects/foo/app/views/layouts/application.html.erb:13)

Кто-нибудь знает, что происходит с этим? Действительно ли жемчужина хочет, чтобы я переименовал все мои таблицы стилей из:

app/assets/stylesheets/foo.css.scss

в

app/assets/stylesheets/foo.scss

?

Кажется, для меня против года правления Rails. Возможно, есть способ подавить предупреждение об утомлении?

Ответ 1

Да, вам нужно переименовать свой .css.scss только .scss, так как .css.scss не будет поддерживаться в звездочках 4.

Если вы хотите подавить временную задержку, вы можете сделать следующее: config/initializer/deprecations.rb

Rails.application.config.after_initialize do
  old_behaviour = ActiveSupport::Deprecation.behavior
  ActiveSupport::Deprecation.behavior = ->(message, callstack) {
    unless message.starts_with?('DEPRECATION WARNING: Extra .css in SCSS file is unnecessary.',
                                'DEPRECATION WARNING: Extra .css in SASS file is unnecessary.')
      old_behaviour.each { |behavior| behavior[message,callstack] }
    end
  }
end

Или вы можете запланировать обезьяну, чтобы не генерировать сообщение следующим образом:

module DisableCssDeprecation
  def deprecate_extra_css_extension(engine)
    if engine && filename = engine.options[:filename]
      if filename.end_with?('.css.scss','.css.sass')
        engine
      else
        super
      end 
    end
  end
end

module Sass ; module Rails ; class SassImporter
  prepend DisableCssDeprecation
end ; end ; end

Ответ 2

Мне это удалось:

#!/bin/sh
for file in $(find ./app/assets/stylesheets/ -name "*.css.scss")
do
    git mv $file `echo $file | sed s/\.css//`
done

Ответ 3

Эта команда помогла мне переименовать много файлов .css.sass:

find ./app/assets/stylesheets -type f | sed 'p;s/\.css\.scss/.scss/' | xargs -n2 git mv