~/VibeHandbook
$39

05 · 05

环境变量与配置

有些值是不能写进你的代码里的:密钥、数据库密码、某个服务的地址。还有一些值需要随着应用运行的地方而改变。你在笔记本上测试的代码(dev 环境)应该连到一个测试数据库;你的用户真正在用的那个线上应用(prod,即生产环境)必须连到真实的那个——而且用的是同一份代码

答案就是环境变量(environment variables,常简称 "env vars"):一些有名字的值,它们住在代码之外,并在代码运行时被供给进去。代码说 "把 DATABASE_URL 给我",然后由环境来决定要交出哪一个。

# 一个配置文件(例如 .env)—— 值住在这里,而不是在代码里

DATABASE_URL=postgres://localhost/myapp_dev
STRIPE_SECRET_KEY=sk_test_51H...     # dev = 一个测试用的密钥
SEND_REAL_EMAILS=false               # 测试时别给真实用户发邮件

有两条规则能帮你省掉实打实的痛苦:

  • 密钥绝对不放进代码里。 你代码里的任何东西都可能最终变成公开的(尤其是在一个共享的代码仓库里),而泄露一个支付密钥或数据库密码是一场货真价实的紧急事件。密钥应该放在 env vars 里,并且不进入版本控制。
  • dev 和 prod 是不一样的。 重点在于同一份代码在两者里都表现正确,因为是由环境——而不是代码——来决定用哪个数据库和哪些密钥。

想离线阅读?

获取 PDF + EPUB + 可下载的提示词库 + 版本更新。

$ 获取 PDF — $39