🐰

BugSnag の App Version を設定して、リリースごとの stability をモニタリングする(Nuxt.js)

2023/01/12に公開

この記事の内容

  • Nuxt.js × BugSnag で App Version を設定し、リリースごとに stability を確認できるようにします。(Next.js とかでも基本同じだとは思います)

  • 「そもそも Bugsnag の App Version ってなに?」という方は、こちらの記事が分かりやすかったのでご覧ください。

前提

stability を表示するためには、BugSnag の standard plan が必要になります。
無料プランだけど試したい場合は、(2023年1月時点では)14日間の無料トライアルがあるので、こちらを活用するのが良さそうです。

詳細: https://www.bugsnag.com/pricing

手順

1.nuxt.config.js の publicRuntimeConfig で appVersion を定義

/* nuxt.config.js */
const nuxtStartDate = new Date().toLocaleString({ timeZone: 'Asia/Tokyo' })
const appVersion = nuxtStartDate.toString()

...

module.exports = {
  ...
  publicRuntimeConfig: {
    appVersion,
  },
  ...
}

2.plugins/bugSnag.js (BugSnag Client の定義箇所)で appVersion を指定

/* plugins/bugSnag.js */
import Vue from 'vue'
import Bugsnag from '@bugsnag/js'
import BugsnagPluginVue from '@bugsnag/plugin-vue'

// eslint-disable-next-line import/no-mutable-exports
export let bugsnagClient

export default function ({ $config }, inject) {
  if (!Bugsnag._client) {
    bugsnagClient = Bugsnag.start({
      apiKey: 'XXXXXXXXXXXXXXXXXXX',
      appVersion: $config.appVersion, // ←これ
      plugins: [new BugsnagPluginVue()],
      releaseStage: process.env.NODE_ENV,
      publishRelease: true,
    })
    Bugsnag.getPlugin('vue').installVueErrorHandler(Vue)
  } else {
    bugsnagClient = Bugsnag._client
  }

  inject('bugsnag', bugsnagClient)
}

参考記事

https://tech.enechange.co.jp/entry/2022/02/25/202000
https://docs.bugsnag.com/platforms/javascript/configuration-options/

Discussion