ctrl+shift+f(mac用cmd+shift+f)是快速定位项目中所有环境变量配置文件的最快方式,需在搜索框下方“文件中包括”填入*/.env以覆盖隐藏文件及变体,并检查.gitignore是否屏蔽了.env文件。

Ctrl+Shift+F 搜索 .env 文件最直接
想快速定位项目里所有环境变量配置,Ctrl+Shift+F(Mac 用 Cmd+Shift+F)是最快路径。别先去翻文件树,直接搜:.env、.env.local、.env.development 这类常见命名。搜索框下方的“文件中包括”务必填上 **/.env*,否则容易漏掉隐藏文件或带后缀的变体。
注意:VSCode 默认不索引 .gitignore 里的文件,但 .env 类文件通常会被忽略——所以如果搜不到,先检查它是否被 .gitignore 屏蔽了,临时注释掉那行再搜。
launch.json 里 env 字段必须手写,不能靠自动补全
launch.json 中的 env 是纯 JSON 键值对,VSCode 不会帮你校验变量名是否存在、拼写是否正确,也不会提示你哪些变量已在 .env 文件里定义过。常见错误是把 API_URL 写成 API_URL_ 或大小写混用(比如 api_url),而代码里读的是 process.env.API_URL,结果读出来是 undefined。
- 建议在
env里只放调试必需的变量,其他统一走dotenv加载 - 避免在
env里硬编码敏感值,尤其别提交到 Git - 如果项目用了
dotenv,确保代码里有require('dotenv').config(),否则launch.json和.env是两套独立系统
多环境切换时,别只看状态栏 Python 解释器
状态栏显示的 Python 环境只是解释器路径,和环境变量完全无关。你可能选了 venv-prod,但 launch.json 里还是 "NODE_ENV": "development",或者 .env.production 根本没被加载。
验证方式很简单:在调试会话里加一行 console.log(process.env),或者用 VSCode 调试控制台直接执行 Object.keys(process.env)。重点看几个关键变量是否出现、值是否符合预期,而不是依赖状态栏文字。
容易被忽略的点:VSCode 的终端激活环境和调试进程环境是分离的。你在终端里 source .env.production 生效,不代表调试时也生效——只有 launch.json 的 env 或代码里 dotenv.config({ path: '.env.production' }) 才会影响调试上下文。











