它可以让你明白一个目录的意思,
简单来说,在你熟悉的终端 zsh bash 之类的 配置文件中
比如我 zsh
# Add direnv hook
eval "$(direnv hook zsh)"
cd/my_project
echo "echo 'hello this is my project'" >> .envrc
direnv allow
那么再你再进入这个目录时,自动运行 echo hello this is my project
问题: 不需要 unloading or loading .envrc
之类的日志输出时。
.zshrc
# Add direnv hook
eval "$(direnv hook zsh)"
# remove direnv log loading
export DIRENV_LOG_FORMAT=
原文,
direnv是shell的环境切换器。 它知道如何挂钩到bash,zsh,tcsh和fish shell来根据当前目录加载或卸载环境变量。 这允许项目特定的环境变量而不会混乱〜/ .profile文件。
在每次提示之前,direnv检查当前目录和父目录中是否存在“.envrc”文件。 如果文件存在(并被授权),则将其加载到bash子shell中,然后所有导出的变量将被direnv捕获,然后提供给当前shell。
因为direnv被编译成一个静态的可执行文件,所以在每个提示符上显示的速度足够快。 它也是语言不可知的,可用于构建类似于rbenv,pyenv和pipenv的解决方案。