在 CloudFlare Worker 中检测我们是 运行 处于开发模式还是生产模式

Detecting if we are running in dev mode or in production mode in CloudFlare Worker

我需要在我的工作脚本中知道它是否是 运行 在本地使用 wrangler dev 或者在 wrangelr publish.

之后在 cloudflare 运行

是否有环境变量告诉我,或者请求 headers?

代码片段将受到高度重视。 谢谢。

没有内置变量,但您可以通过定义 environments in your wrangler.toml

自己填充此类信息

例如,如果我们说最顶层的 [vars] 用于生产,我们可以声明另一个变量集用于 local 环境。 (环境名称无关紧要)

type = "webpack"
webpack_config = "webpack.config.js"

# these will be used in production
vars = { WORKER_ENV = "production", SENTRY_ENABLED = true }

[env.local]
# these will be used only when --env=local
vars = { WORKER_ENV = "local", SENTRY_ENABLED = false }

从那时起,如果您运行您的工作人员在本地使用

wrangler dev --env=local

绑定 WORKER_ENV 的值将按照 [env.local.vars] 下的定义填充。

顺便说一句,上面wrangler.toml的语法等同于

type = "webpack"
webpack_config = "webpack.config.js"

[vars]
  WORKER_ENV = "production"
  SENTRY_ENABLED = true

[env]

  [env.local]

    [env.local.vars]
      WORKER_ENV = "local"
      SENTRY_ENABLED = false

我觉得这样更容易理解