Next.js:如何在所有环境中永久禁用遥测?

Sho*_*orn 7 next.js

我想在所有环境中永远禁用 Next.js 遥测(只是因为,好吧?我们不要通过无关的辩论来转移问题)。

我不希望遥测在开发人员环境、测试构建、CI 构建或其他任何地方运行。我正在尝试找到一个“代码”解决方案 - 我不想在环境中手动执行任何操作才能关闭遥测。

Next.js 很难确定是否启用了遥测,因为它仅在给定计算机上打印一次遥测警告。

我了解遥测是否正在运行的诊断是将命令添加next telemetry status到我的build脚本中package.json

"build": "next telemetry status && next build",
Run Code Online (Sandbox Code Playgroud)

我尝试将以下内容添加到next.config.js

module.exports = {
  env: {
    NEXT_TELEMETRY_DISABLED: '1',
  },
}
Run Code Online (Sandbox Code Playgroud)

我尝试将其添加到.env

NEXT_TELEMETRY_DISABLED=1
Run Code Online (Sandbox Code Playgroud)

但遥测命令仍然报告Status: Enabled

事实上,NEXT_TELEMETRY_DISABLEDenv 变量似乎根本不起作用,我尝试通过设置 env 变量在 IDE 中手动禁用遥测,但它仍然报告遥测已启用:

在此输入图像描述

Sho*_*orn 11

添加next telemetry disable命令作为我的prebuild脚本似乎已经成功了。

"prebuild": "next telemetry disable",
"build": "next build",
Run Code Online (Sandbox Code Playgroud)

  • @dokgu您可能会考虑添加其他“pre”脚本,例如“predev”https://docs.npmjs.com/cli/v9/using-npm/scripts#pre--post-scripts (3认同)