系列:开发环境管理
很多项目都需要环境变量:数据库地址、API 地址、运行模式、密钥路径。手动 source .env 很容易忘。direnv 的作用就是进入目录时自动加载,离开目录时自动卸载。
安装
Debian / Ubuntu:
sudo apt install direnvShell 里启用 hook:
eval "$(direnv hook bash)"zsh 用户放到 .zshrc:
eval "$(direnv hook zsh)"基本用法
在项目根目录创建 .envrc:
export APP_ENV=localexport DATABASE_URL=sqlite:///dev.dblayout python .venv第一次需要允许:
direnv allow之后进入目录会自动加载变量,离开目录会清掉。
和项目工具配合
Node 项目可以配合 .nvmrc 和 nvm 安装和使用教程,Python 项目可以配合 pyenv 安装与使用指南 或 uv 安装和使用教程。
一个常见 .envrc:
export APP_ENV=localexport SECRET_KEY=dev-onlyexport DATABASE_URL=postgresql://localhost/appPATH_add .venv/bin常见问题
.envrc 里不要放生产密钥。它很容易被提交。可以提交 .envrc.example,真实 .envrc 加进 .gitignore。
改完 .envrc 后必须重新执行:
direnv allow这是安全设计,避免你进入陌生仓库时自动执行危险脚本。
总结
direnv 适合多项目开发机。它解决的不是部署配置,而是本地切项目时的环境隔离。用好 .envrc、.gitignore 和示例文件,能少很多“我本地为什么读不到变量”的问题。更多细节看 direnv 官方文档。