2014-12-18 4 views
15

Wir Sass Schienen-Upgrade auf Version 5.0.0 und diese deprecation Warnung erhalten:Upgrade gem Sass-Schienen bis 5,0 gibt deprecation Warnung

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) 

Wer weiß, was mit diesem los? Hat das Juwel wirklich wollen, dass ich alle meine Sheet Vermögen umbenennen aus:

app/assets/stylesheets/foo.css.scss 

zu:

app/assets/stylesheets/foo.scss 

?

Scheint gegen Jahre der Rails-Konvention zu mir laufen. Vielleicht gibt es eine Möglichkeit, die Verwarnungswarnung zu unterdrücken?

+2

Scheint, wie es hin und her hier war: https://github.com/ Schienen/sass-Schienen/commit/bac031b802f785cfc3d3b561617b0f7bd64d78ba. Sie könnten es immer überschreiben (wie in einem Initialisierer), wenn Sie bevorzugen. –

+1

Diskussion hier: https://github.com/rails/sass-rails/issues/290 – ipd

Antwort

11

Ja, Sie müssen umbenennen .css.scss nur .scss, wie .css.scss nicht in Ritzel unterstützt werden 4.

Wenn Sie die deprecation vorübergehend zu unterdrücken möchten, können Sie die folgenden Funktionen 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 

Oder Sie können Affe patch, um die Nachricht nicht so zu generieren:

+0

Ja, danke, wir haben sie umbenannt, nachdem ich den anfänglichen Schock und Unglauben überwunden hatte. :/ – ipd

27

Dieses behandelt es für mich:

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

Funktioniert gut, danke! –

+3

Zusätzliche Hilfe: Speichern Sie das in einer Datei (etwas wie 'remove_css_extension.sh'),' $ chmod a + x remove_css_extension.sh', '$./Remove_css_extension.sh', done. –

+2

Anstelle von sed verwenden Sie einfach Basisname: 'git mv '$ file" $ (Basisname "$ file" .scss) ' – d4rky

1

Dieser Befehl hat mir geholfen, viele .css.sass Umbenennen von Dateien:

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