在 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
我觉得这样更容易理解
我需要在我的工作脚本中知道它是否是 运行 在本地使用 wrangler dev
或者在 wrangelr publish
.
是否有环境变量告诉我,或者请求 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
我觉得这样更容易理解