Rails アプリの 1 つで、ExecJS が coffeescript コンパイル エラーの行番号を表示していません。コンパイル エラー メッセージは次のようになります。
ExecJS::RuntimeError in Referrals#new
Showing ~/MyApp/app/views/layouts/application.html.erb where line #6 raised:
SyntaxError: unexpected IDENTIFIER
(in ~/MyApp/assets/javascripts/utils.js.coffee)
コーヒー スクリプト ソースには行番号がないことに注意してください (行番号 6 は erb ファイル用です)。
まだ行番号を取得している別のアプリでは、構文エラーは次のようになります。
ExecJS::ProgramError in Projects#show
Showing ~/OtherApp/app/views/layouts/application.html.erb where line #17 raised:
Error: Parse error on line 6: Unexpected 'STRING'
(in ~/OtherApp/app/assets/javascripts/projects.js.coffee)
したがって、違いはExecJS::ProgramError
行番号を提供することですが、行番号は提供しExecJS::RuntimeError
ないようです。
行番号を元に戻す方法を知っている人はいますか? 私のアプリがコーヒー アセットのコンパイルで RuntimeErrors を作成しているのに、他のアプリでは ProgramErrors が発生しているのはなぜですか? Railsをチェックしたところ、一致しているようです。
コンパイル エラーを修正すると、アプリは正常に動作することに注意してください (たとえば、コーヒー ファイルは実際にコンパイルされます)。ただし、これらの行番号でコンパイル エラーを指摘してもらえると便利です!
編集
それが ExecJSRuntimeerror
か a かProgramError
は問題ではないように思われることに気付きました-最初のアプリでは行番号が指定されておらず、2 番目のアプリでは常に行番号が指定されています。