Next.jsやNuxtは匿名データを外部に送信する仕様なので注意が必要

Next.jsやNuxtは匿名データを外部に送信する

モダンなWeb開発で広く使われているNext.jsやNuxtには、デフォルトで開発時の利用状況データを外部に自動送信する仕様が含まれています。

個人開発であれば気にする必要はありませんが、企業のプロジェクトやセキュリティ要件が厳しい開発現場では、意図しない外部通信として問題視されるケースがあります。

本記事では、この自動送信を停止するための設定方法を解説します。

なぜデータが送信されるのか

Next.jsやNuxtの開発チームはフレームワークの改善を目的としてデータを収集しています。

送信される主なデータは以下の5つです。

  • 実行されたコマンド(next buildなど)
  • ビルドにかかった時間
  • 使用しているフレームワークやNode.jsのバージョン
  • プロジェクトの規模(ページ数やコンポーネント数など)
  • エラーの発生ログ

公式には「個人情報や機密トークンは一切含まれない、完全に匿名化されたデータ」と明記されていますが、外部への不要な通信を制限したい環境では、無効化が推奨されます。

自動送信を無効化する方法

Next.js、Nuxtともに、.envファイルで以下を記述することで外部への自動送信を無効化できます。

Next.js

.env
NEXT_TELEMETRY_DISABLED=1

Nuxt

.env
NEXT_TELEMETRY_DISABLED=1

Nuxtはオープンソース共通の追跡拒否規格である「DO_NOT_TRACK=1」にも対応しているため、オープンソース共通で追跡拒否する場合はこちらを設定してください。

.env
DO_NOT_TRACK=1

まとめ

社内のセキュリティポリシーで外部への不要なデータ送信が禁止されている場合や、無駄な通信を省きたい場合は「.envファイル」に1行追加するだけで停止できます。

企業のNext.jsまたはNuxtには、「NEXT_TELEMETRY_DISABLED=1」や「NUXT_TELEMETRY_DISABLED=1」を初期設定として追加して自動送信を停止しておくことをおすすめします。

Next.js Telemetry Documentation

Nuxt Telemetry Module