遥测
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 disableyarn next telemetry disablepnpm exec next telemetry disablebun next telemetry disable您可以随时在项目根目录中运行 next telemetry status 来检查遥测收集状态。
npx next telemetry statusyarn next telemetry statuspnpm exec next telemetry statusbun next telemetry status如果您想重新加入该程序,可以通过在项目根目录中运行以下命令来重新启用遥测:
npx next telemetry enableyarn next telemetry enablepnpm exec next telemetry enablebun next telemetry enable您也可以通过设置环境变量:NEXT_TELEMETRY_DISABLED=1 来选择退出。