遥测
Next.js 收集关于通用使用情况的完全匿名的遥测数据。参与此匿名计划是可选的,如果您不想分享任何信息,可以选择退出。
为什么要收集遥测数据?
自发布以来,Next.js 经历了显著的增长,成为开发者事实上的 React 框架。在收集遥测数据之前,关于如何改进 Next.js 的决策过程非常手动。
例如,Vercel 使用自己的产品 许多大型 React 应用程序(包括 Next.js 网站)。此外,我们积极与社区互动以收集反馈。
然而,这种方法仅允许我们从一部分用户那里收集反馈。这部分用户可能与您有不同的需求和用例。遥测使我们能够准确衡量 Next.js 功能的使用情况、痛点和自定义程度。
这些数据将使我们能够更好地为大众量身定制 Next.js,确保其持续增长、相关性以及一流的开发者体验。此外,这将使我们能够验证对框架的改进是否正在改善所有应用程序的基线。
正在收集什么?
我们跟踪通用使用信息,例如 Next.js 插件和构建性能。具体来说,我们匿名跟踪以下信息:
- 调用的命令 (
next build
,next dev
, 或next 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
。