Как я могу получить конвейер Rails для создания исходных карт?
Я бы хотел, чтобы Rails создавал исходные карты вместе с компилируемым coffeescript/minified JS, для лучшего ведения журнала ошибок. Тем не менее, похоже, что нет полной документации по сети, как это сделать. Кто-нибудь сделал это?
Я на Rails 3.2 и Heroku.
Ответы
Ответ 1
Rails поддерживает исходные карты для миниатюрного javascript! Rails полагается на sprockets для компиляции активов, а поддержка исходных карт добавлена к звездочкам в этот запрос на растяжение.
Отредактировано 2016-12-07, чтобы обновить основной текст ответа.
Ответ 2
Если вы действительно не хотите исходных карт, но вместо этого просто хотите номера строк в coffee- script исключать компиляцию, попробуйте это:
Раньше считалось, что только наличие кофейных рельсов в вашем Gemfile приведет к исключениям с номерами строк в исходном источнике coffeescript. Затем они исчезли с исключением из числа строк. Я сделал некоторое копание, и я обнаружил, что coffee-script-source
1.5.x дал номера строк в исключениях компиляции, а coffee-script-source
1.6.x этого не сделал. Я считаю, что это ошибка, и я не удивлюсь, если это будет "исправлено" в будущем.
# Gemfile
gem 'coffee-rails', '~> 4.0.0'
gem 'coffee-script-source', '~> 1.5.0' # 1.6 doesn't include line numbers in exceptions
Затем вы получите такие исключения, как ('coffee- script -source', '~ > 1.5.0')
Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:
SyntaxError: missing } on line 15
(in /Users/.../app/assets/javascripts/app.js.coffee)
Вместо ('coffee- script -source', '~ > 1.6.3')
Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:
SyntaxError: missing }
(in /Users/.../app/assets/javascripts/app.js.coffee)
Ответ 3
Протестировано. Оно работает. https://github.com/markbates/coffee-rails-source-maps. Однако это значительно снижает эффективность вашего актива.
Ответ 4
Похоже, что он должен работать: http://alexspeller.com/2012/09/15/Source_maps_for_coffeescript_in_rails.html
Хотя, помните об этом в конце:
Важное примечание: этот довольно жестокий взлом заменяет нормальный компилятор coffeescript, выгружаясь в CoffeeScriptRedux компилятор, который на самом деле не закончен. Это просто доказательство вы, вероятно, не должны его использовать.
Поэтому я бы не рекомендовал запускать это в процессе производства, но если у вас есть промежуточная среда (также на Heroku, также с миниатюрным Javascript), это может быть полезно.