跳到內容

遙測

Next.js 收集關於一般使用情況的完全匿名遙測資料。參與此匿名程式是可選的,如果您不想分享任何資訊,可以選擇退出。

為什麼收集遙測資料?

Next.js 自發布以來發展迅速,成為開發者事實上的 React 框架。在收集遙測資料之前,決定如何改進 Next.js 是一個非常手動的過程。

例如,Vercel 內部使用了許多大型 React 應用程式(包括 Next.js 網站)。此外,我們積極與社群互動以收集反饋。

然而,這種方法只允許我們從部分使用者那裡收集反饋。這部分使用者可能與您有不同的需求和用例。遙測允許我們準確衡量 Next.js 功能的使用情況、痛點和定製情況。

這些資料將使我們能夠更好地為大眾定製 Next.js,確保其持續增長、相關性以及一流的開發者體驗。此外,這將使我們能夠驗證對框架的改進是否正在提高所有應用程式的基準。

收集了哪些資料?

我們跟蹤一般使用資訊,例如 Next.js 外掛和構建效能。具體來說,我們匿名跟蹤以下資訊:

  • 呼叫的命令(next buildnext devnext export
  • Next.js 版本
  • 一般機器資訊(例如 CPU 數量、macOS/Windows/Linux、命令是否在 CI 中執行)
  • 專案中存在的 Next.js 外掛
  • next build 的持續時間以及應用程式大小(頁面總數)
  • 在開發過程中,我們會就錯誤徵求額外的反饋(請參閱錯誤反饋

注意:此列表會定期稽核以確保其準確性。

您可以透過設定以下環境變數來準確檢視收集了哪些資料:NEXT_TELEMETRY_DEBUG=1

當設定此環境變數時,資料將不會發送給我們。資料只會列印到stderr,並帶有 [telemetry] 字首。

一個遙測事件示例如下:

{
  "eventName": "NEXT_VERSION",
  "payload": {
    "version": "9.0.5-canary.2",
    "isDevelopment": false
  }
}

敏感資料(例如秘密)怎麼辦?

我們收集任何可能包含敏感資料的指標。

這包括但不限於:環境變數、檔案路徑、檔案內容、日誌或序列化的 JavaScript 錯誤。

我們非常重視隱私和安全。Next.js 遙測資料遵循安全披露政策

我們收集的資料也完全匿名,無法追溯到來源,僅在彙總形式下才有意義。

我們收集的資料中不包含任何個人身份資訊。

這些資料會共享嗎?

我們內部使用遙測資料來幫助我們改進產品,並且只會出於營銷等商業目的共享去識別化的彙總資料。

錯誤反饋

在開發過程中顯示錯誤時,Next.js 允許傳送錯誤是否有幫助的反饋。此反饋傳送給 Vercel,用於改進 Next.js 中的錯誤訊息。Next.js 不會自動收集此反饋。開發人員必須點選點贊或點踩按鈕才能傳送相應的反饋。

Next.js 只會收集錯誤程式碼和任何其他它已經自動收集的資訊。錯誤程式碼是特定錯誤的唯一識別符號。無法從該程式碼重構完整的錯誤訊息,因為錯誤訊息可能包含特定於應用程式的資料,例如發生錯誤的頁面。錯誤程式碼及其對應訊息的列表可在vercel/next.js/packages/next/errors.json檢視。

如何選擇退出?

您可以透過在專案根目錄中執行 next telemetry disable 來選擇退出。

npx next telemetry disable
yarn next telemetry disable
pnpm exec next telemetry disable
bun next telemetry disable

您可以隨時在專案根目錄中執行 next telemetry status 來檢查遙測收集狀態。

npx next telemetry status
yarn next telemetry status
pnpm exec next telemetry status
bun next telemetry status

如果您想重新加入該程式,可以透過在專案根目錄中執行以下命令來重新啟用遙測:

npx next telemetry enable
yarn next telemetry enable
pnpm exec next telemetry enable
bun next telemetry enable

您也可以透過設定環境變數:NEXT_TELEMETRY_DISABLED=1 來選擇退出。