Nuxt + TypescriptプロジェクトにSentryを導入する

公開日時

Sentryの導入自体はnuxt-community/sentry-moduleを使うと手軽に導入できる。

yarn add @nuxtjs/sentry

ただ、sourcemapを利用するためにはAPI Tokenの設定が必要だったので対応方法を残しておく。

nuxt.config.tsに以下を設定。

Sentry側でどのリリースか区別できるようにコミットハッシュ(GIT_SHA)を設定しておく。

// nuxt.config.ts
modules: [
  '@nuxtjs/sentry'
],
sentry: {
  dsn: process.env.SENTRY_DSN || '',
  disabled: process.env.NODE_ENV !== 'production',
  publishRelease: true,
  sourceMapStyle: 'hidden-source-map',
  config: {
    release: process.env.GIT_SHA,
    environment: process.env.SENTRY_ENV || 'production',
  }
},
// ...

あとはGithub Actionでデプロイする際に環境変数として以下を設定すればSentry側でsourcemapの表示とリリース管理ができるようになる。

SENTRY_AUTH_TOKENについてはSentryの管理画面でトークンを発行して設定する。

# .github/workflows/deploy.yml
- name: Build
  env:
    NODE_ENV: production
    SENTRY_ENV: production
    SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
    SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
    SENTRY_ORG: your_sentry_org
    SENTRY_PROJECT: your_sentry_project
    GIT_SHA: ${{ github.sha }}
  run: yarn run build

参考


Related #nuxt.js

dockerコンテナ上のnuxt.jsアプリでhot reloadを有効にする

watcherの設定をpollingに変更する

create nuxt-appで作成したアプリでTapable.plugin is deprecatedが出る場合の対処法

yarn add @nuxtjs/pwa@v3.0.0-beta.16でPWA Moduleを更新する

nuxtでdotenv-module利用時にCircleCIで環境変数を指定する

nuxt.config.tsのenvを設定した

Nuxt.jsのservice workerで環境変数を切り替えられるようにする

設定情報をハードコードしたくなかったので、ビルド時にnodeコマンドでファイル生成を行い環境変数を切り替えられるように対応した。

NuxtアプリをGAEにデプロイする(Node.js 10)

GAEへのデプロイの際にいくつかエラーが出てハマったので対応内容をまとめておく