摘要:~/projects/cursor/yes-ai-agent/server on mAIn! ⌚ 21:41:42$ brew install direnv==> Auto-updating Homebrew...==> Installing direnv
最近在mac本地开发多个nodejs项目,每个项目需要的nodejs版本都不同,若是忘记了使用 nvm use 18 手动切换版本,每次运行都是一堆报错。
# 以前手动切换 node 版本$ nvm use 18现在发现了这个更优雅的方案。
1、安装 direnv 和 nvm
# 安装 direnvbrew install direnv # macOS# 或sudo apt install direnv # Ubuntu/Debian# 初始化 direnv(根据你的 shell 添加到配置文件)echo 'eval "$(direnv hook bash)"' >> ~/.bashrc # Bashecho 'eval "$(direnv hook zsh)"' >> ~/.zshrc # Zshexec $SHELL # 重启 shell2、在项目根目录创建 .envrc 文件
$vim .envrc# 在 .envrc 开头添加 nvm 初始化source $HOME/.nvm/nvm.sh# 然后使用 nvmnvm use 183、授权并激活配置
direnv allow效果:
每次进入项目目录时自动切换 Node.js 到 v18,退出目录时恢复原版本。
连续执行命令的本地结果,
~/projects/cursor/yes-ai-agent/server on mAIn! ⌚ 21:41:42$ brew install direnv==> Auto-updating Homebrew...==> Installing direnv==> Pouring direnv--2.36.0.sonoma.bottle.tar.gz/usr/local/Cellar/direnv/2.36.0: 12 files, 11.8MB==> Running `brew cleanup direnv`...~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:48:29$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc # Bash~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:49:05$ echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc # Zsh~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:49:08$ exec $SHELL ~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:49:14$ vim .envrc# 在 .envrc 开头添加 nvm 初始化source $HOME/.nvm/nvm.sh# 然后使用 nvmnvm use 18~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:49:30$ direnv allowdirenv: loading ~/projects/cursor/yes-ai-agent/server/.envrc可以看到,进入项目根目录时,会自动切换nodejs 版本为18(我的本地环境默认是node14),提示了“direnv: loading ~/projects/cursor/yes-ai-agent/server/.envrc”。而退出项目目录时,则会自动恢复,提示了“direnv: unloading”。
~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:58:27$ direnv allowdirenv: loading ~/projects/cursor/yes-ai-agent/server/.envrc Now using node v18.20.4 (npm v10.7.0)~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:58:32$ cd ..direnv: unloading~/projects/cursor/yes-ai-agent ⌚ 21:58:39$ cd -~/projects/cursor/yes-ai-agent/serverdirenv: loading ~/projects/cursor/yes-ai-agent/server/.envrcNow using node v18.20.4 (npm v10.7.0)~/projects/cursor/yes-ai-agent/server on main! ⌚ 21:58:42$ pwd/Users/dogstar/projects/cursor/yes-ai-agent/server我最近每次都要手动告诉AI编程工具,例如cursor先切换到nodejs 18 版本,再执行命令。非常麻烦,类似每次都是这样的重复对话。
我:请先使用 nvm use 18 切换版本,再使用 pnpm 命令安装
现在方便了,使用上面优雅的方法配置好后,任何的环境、IDE和AI编程工具也都生效了,真是方便!
来源:小向说科技