Next.jsで開発環境と本番環境を分けて発火するsentryのコードを実装した
2024年12月07日 13:48
開発環境と本番環境では、多くの場合で動作が異なります。開発中はエラーが発生しても気軽に修正できますが、本番環境ではユーザーに影響を与えるため、エラーを発生させないように細心の注意を払う必要があります。そのため、開発環境と本番環境の設定を分けることは重要です。
今回は、Next.jsで開発環境と本番環境を分け、本番環境で発生したエラーを収集するためにsentryを導入しました。さらに、開発環境ではエラーを発生させず、本番環境ではエラーを発生させるように設定しました。
開発環境と本番環境の設定を分けるために、Next.jsでは環境変数を利用することができます。まず、.env.local
ファイルを作成し、以下のように記述します。
このファイルでは、sentryのDSNを設定し、NODE_ENV
をdevelopment
に設定しています。これにより、開発環境であることを示しています。
次に、本番環境用の.env.production
ファイルを作成し、以下のように設定します。
このファイルでは、同様にsentryのDSNを設定し、NODE_ENV
をproduction
に設定しています。これにより、本番環境であることを示しています。
sentryは、エラーの収集と管理を行うためのサービスです。Next.jsでは、@sentry/nextjs
というライブラリを利用することで簡単に導入することができます。
まず、@sentry/nextjs
をインストールします。
次に、pages/_app.js
ファイルを編集し、以下のように記述します。
ここでは、@sentry/nextjs
をインポートし、Sentry.init()
を利用してsentryを初期化しています。dsn
には、.env.local
ファイルで設定したsentryのDSNを渡しています。environment
には、NODE_ENV
を渡しています。これにより、開発環境と本番環境で異なる設定を行うことができます。
また、integrations
とtracesSampleRate
を設定することで、トレース情報を収集することができます。トレース情報とは、アプリケーションの処理時間やHTTPリクエストなどの情報を収集することで、エラーの原因を特定するのに役立ちます。
開発環境ではエラーを発生させず、本番環境ではエラーを発生させるように設定するために、pages/index.js
ファイルを編集します。
ここでは、ボタンをクリックするとエラーを発生させるように設定しました。しかし、開発環境ではエラーを発生させないように設定しているため、このままではエラーが発生しません。
最後に、本番環境でエラーを収集するように設定を行います。先ほど作成したpages/_app.js
ファイルを編集し、以下のように記述します。
ここでは、MyApp
コンポーネントにerr
が渡された場合にエラーを収集するように設定しています。これにより、本番環境でエラーが発生した場合にエラーがsentryに送信されます。
Next.jsでは、環境変数を利用して開発環境と本番環境の設定を分けることができます。また、@sentry/nextjs
を利用することで簡単にsentryを導入することができます。本番環境ではエラーを収集し、開発環境ではエラーを発生させないように設定することで、より安全にアプリケーションを開発することができます。
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。