sublime text 原生不支持 .env 文件,必须通过 envfile 插件配合自定义 build system 实现项目级环境变量注入,加载优先级为 .env.development → .env,且需显式绑定构建目标并绕过系统沙盒或权限限制。

Sublime Text 本身不读取 .env 文件,也不自动注入环境变量——项目级环境变量必须靠插件 + 项目配置双配合才能生效。
EnvFile 插件是唯一靠谱的 dotenv 支持方案
Sublime 原生不解析 .env、.env.development 等文件。官方没提供类似 VS Code 的“自动加载”机制,硬靠改系统 PATH 或用户设置只会污染全局,起不到“项目隔离”效果。
- 必须安装
EnvFile插件(通过 Package Control 搜索安装,兼容 ST3/ST4) - 插件只在运行 Build System 时注入变量,对 Sublime 自身 UI、侧边栏、搜索等行为无影响
- 它会按优先级加载:
.env.development→.env(前提是项目设置中指定了"env": {"NODE_ENV": "development"}) - 变量值不支持嵌套引用(如
PORT=${PORT}不生效),只做纯文本替换
项目配置里必须显式启用 EnvFile 并配对构建系统
光装插件不够。EnvFile 默认只监听当前视图所在文件夹下的 .env* 文件,但不会自动把变量传给构建命令——你得手动绑定。
- 打开项目根目录的
.sublime-project文件,在"build_systems"里定义一个构建项,并确保"target"是"env_file_build" - 不要用默认的
Python构建系统,它不走 EnvFile 流程;必须新建一个,例如:
{
"name": "Python with .env",
"target": "env_file_build",
"cmd": ["python", "-u", "$file"],
"selector": "source.python",
"file_regex": "^[ ]*File \"(.+?)\", line ([0-9]+)"
}
- 如果构建失败且报错
command not found: env_file_build,说明插件没装成功或未重启 Sublime - 构建系统里的
"cmd"路径不能写死绝对路径(如C:\Python39\python.exe),否则 EnvFile 注入失效
常见失效场景:PATH 冲突、权限拦截、沙盒限制
即使 .env 存在、插件启用、构建系统配对,仍可能无声失败——这不是配置问题,而是操作系统层面的拦截。
- macOS Sonoma 及更新版本:Sublime 启动的子进程默认被沙盒限制,
.env中的PATH可能被忽略,需手动在构建系统里补全,例如:"path": "/opt/homebrew/bin:/usr/local/bin:$PATH" - Windows 上杀毒软件(如 Windows Defender 或企业 EDR)会静默阻止 PATH 修改生效,导致
subl命令可用但构建时找不到 Python - Linux GNOME/KDE 桌面下,GUI 启动的 Sublime 不继承终端的
~/.zshrc,必须在.sublime-project的构建系统中显式声明"env"字段,不能依赖 shell 初始化
真正可靠的项目环境变量,从来不是“配一次就完事”,而是每次构建都重新解析 .env + 显式绑定构建目标 + 绕过 OS 权限限制。漏掉任一环,变量就只活在文件里,进不了进程。











