Подтвердить что ты не робот

Кофе ExecJS script, не отображающий номера строк для ошибок компиляции (конвейер Rails)

В одном из моих приложений 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, в первом приложении никогда не указывается номер строки, а во втором - всегда.

4b9b3361

Ответ 1

Я понял, это из-за версии coffee-script-source gem. В приложении, в котором указывались номера строк, bundle show дает кофе script - источник 1,4.0, тогда как в другом приложении была версия для кофе script версии 1.6.1.

Я этого не заметил, потому что камень coffee-rails не сильно определяет эту зависимость (в обоих моих Gemfiles я использовал gem 'coffee-rails', '3.2'). Чтобы обойти это, просто укажите версию кофе-script -source gem version:

gem 'coffee-rails', '3.2.2'
gem 'coffee-script-source', '1.5.0'

и bundle update coffee-script-source.

Надеюсь, это поможет любому, кто может столкнуться с этим несоответствием.