2015-12-23 5 views
6

私の人生にとっては、どのファイルがコンパイルエラーを引き起こしたかをスクローケットで確認する方法がわかりません。私は単純に次のようなエラーが出る:Railsのアセットパイプラインでは、どのファイルにエラーが発生したかはわかりません

のCoffeeScriptを含ま.coffeeファイルに無効な構文に以下を追加することによってトリガすることができ

Completed 500 Internal Server Error in 14671ms (ActiveRecord: 281.4ms)

ExecJS::RuntimeError - SyntaxError: [stdin]:1:5: unexpected ,:
  execjs (2.6.0) lib/execjs/external_runtime.rb:84:in `extract_result'
<backtrace continues>

test, 

サス

Completed 500 Internal Server Error in 14671ms (ActiveRecord: 281.4ms)

Sass::SyntaxError - Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";":
  sass (3.4.20) lib/sass/scss/parser.rb:1179:in `expected'
<backtrace continues>

そのような.sassファイルにセミコロンを追加することによってトリガすることができ

.test 
    top: 0; 

警告の場合は、サーバーのログは

しかし

WARNING on line 9 of /path/to/file.sass: This selector doesn't have any properties and will not be rendered.

、構文エラーのような便利なものを示し、単純に500のエラーを表示して、私にエラーの行&の列を教えてくれるようですが、どのファイルであったかはわかりません。私はバックトレースを通して掘り下げてしまい、エラーが発生したファイルを示していません。 SyntaxErrorが発生したファイルを出力するにはどうすればよいですか?

バージョン(すべてこれを書いている時点では、最新の):

  • のRails 4.2.5
  • スプロケット-Railsの3.0.0
  • スプロケット3.5.2
  • サス-Railsの5.0.4
  • サス3.4.20
  • コーヒーのRails 4.1.0
  • コーヒースクリプト2.4.1
  • Coffee-Script-Source 1.10.0

答えて

1

あなたのサーバーでは500エラーが読んでいます。エラーを引き起こしたファイルとファイルの行が表示されます。以下の例は、アプリ/資産/スタイルシート/ test.sassを言う:2

Completed 500 Internal Server Error in 152ms (ActiveRecord: 0.0ms) 

ActionView::Template::Error (Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";"): 
    2: <html> 
    3: <head> 
    4: <title>StackoverflowQuestions</title> 
    5: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    6: <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    7: <%= csrf_meta_tags %> 
    8: </head> 
    app/assets/stylesheets/test.sass:2 
    app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__1109435584510058936_70275420820360' 
+1

回答ありがとうございますが、残念ながら私のバックトレースはそうではありません。私は、バックトレースの最初の行を含めるように質問を編集しました。私のプロジェクトのファイル名への参照はなく、そこから宝石の塊まで続きます。 – swrobel

1

回避策の一つは、あなたの.coffeeはまともなエラーメッセージを取得するには、レールの外に自分自身をファイルにコンパイルすることです。 https://stackoverflow.com/a/41700235/1836506