В одном из моих приложений Rails 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)
Обратите внимание, что для источника кофе script нет номера строки (строка №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, и они, похоже, совпадают.
Обратите внимание, что если я исправляю ошибки компиляции, приложение работает нормально (например, файлы кофе действительно компилируются), но было бы неплохо, если бы эти номера строк указывали мне на ошибки компиляции! /p >
ИЗМЕНИТЬ
Я понял, что независимо от того, выглядит ли это ExecJS Runtimeerror
или ProgramError
, в первом приложении никогда не указывается номер строки, а во втором - всегда.