エラーログを改善するために、Rails がコンパイル済みの coffeescript/縮小された JS と一緒にソースマップを生成するようにしたいと考えています。ただし、これを行う方法に関する包括的なドキュメントはまだネット上にないようです。誰かがこれをしましたか?
Rails 3.2 と Heroku を使用しています。
エラーログを改善するために、Rails がコンパイル済みの coffeescript/縮小された JS と一緒にソースマップを生成するようにしたいと考えています。ただし、これを行う方法に関する包括的なドキュメントはまだネット上にないようです。誰かがこれをしましたか?
Rails 3.2 と Heroku を使用しています。
ソースマップが本当に必要なく、代わりにコーヒースクリプトのコンパイル例外に行番号が必要な場合は、これを試してください:
以前は、Gemfile に coffee-rails があるだけで、元の 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)
これをテストしました。できます。https://github.com/markbates/coffee-rails-source-maps . ただし、アセットのレンダリングが大幅に遅くなります。
これは動作するはずです: http://alexspeller.com/2012/09/15/Source_maps_for_coffeescript_in_rails.html
ただし、最後の警告に注意してください。
重要な注意: このかなり残忍なハックは、通常の coffeescript コンパイラを、CoffeeScriptRedux コンパイラにシェルアウトすることで置き換えますが、これは実際には完了していません。これは単なる概念実証であり、おそらく使用しないでください。
したがって、これを本番環境で実行することはお勧めしませんが、ステージング環境がある場合 (Heroku でも縮小された Javascript を使用している場合) は役立つかもしれません。