61863


デフォルトの application.css を application.scss にリネームして

[code]

    /*
     *= require_tree .
     *= require_self
     */
    
     @import "bootstrap"
    
    .sidebar {
      width: 20%;
    }
    
[/code]

というのをかいてみたところ

[code]

    Error: media query expression must begin with '('
            on line 20:1 of app/assets/stylesheets/application.scss
    >> .sidebar {
    
[/code]

というエラーが出ます  
scss はメディアクエリが必須なんでしょうか？

Rails の仕様なのか SCSSの仕様なんでしょうか


CC BY-SA 4.0
2019-12-28T16:36:27.740
61857
2019-12-28T18:46:47.047
question
ruby-on-rails sass
scss ってメディアクエリが必須ですか？


`@import "bootstrap"`のあとに`;`がぬけていることで`@import "bootstrap" .sideber
{...`のように1つの文として扱われているだけのようです。

エラーメッセージがたしかに不親切な気がするのでしらべてみたところ処理系によってメッセージが異なるようで、

  * libsassの場合は質問文のようなメッセージ、
  * dart-sassだと
[code]     expected ";".

       ╷
    1 │ @import "hoge"
       │               ^
       ╵
      stdin 1:15  root stylesheet on line 1 at column 15
    
[/code]

  * Ruby-Sassだと
[code]     Invalid CSS after "@import "hoge"": expected selector or at-rule,
was ".class {"

    
[/code]

のようになるようです。


CC BY-SA 4.0
2019-12-28T18:46:47.047
61863
2019-12-28T18:46:47.047
2376
61857
answer