Ruby
Rails
Gem
RubyOnRails
SourceMap

Rollbarにsourcemapを送信する

はじめに

エラー監視にRollbar使ってます。
今回、Rollbarにsourcemapを送信するために、gemをインストールしたりヘルパーを作ったりしたのでそのメモです :pencil:

gemのインストール

sprockets_uglifier_with_source_mapsを利用します。

Gemfile
gem 'sprockets_uglifier_with_source_maps'

compressorに指定します。

config/environments/production.rb
SotoasobiRails::Application.configure do
  ...
  config.assets.js_compressor = :uglifier_with_source_maps
  ...
end

javascriptの設定

docs/source-maps.md at master · rollbar/docs
docにしたがってscriptを作成していきます。
が、code versionにgitのコミットハッシュを使いたかったので、ヘルパーを作りました。

capistrano3でデプロイしているプロジェクトだったので、currentディレクトリにあるREVISIONファイルを利用します。

app/helpers/application_helper.rb
def git_commit_hash
  `cat REVISION `.chomp
end

最終的に以下のようになりました。

var _rollbarConfig = {
  accessToken: "xxxxxxxxxxxxxxxxxxxxxxx",
  captureUncaught: true,
  captureUnhandledRejections: true,
  payload: {
    environment: "production",
    client: {
      javascript: {
        code_version: "<%= git_commit_hash %>",
        guess_uncaught_frames: true
      }
    }
  }
};

あとはこいつをデプロイして、Rollbarが自動的にsourcemapを見つけてくれるのを待つだけ :hugging:

以上です。

参考