Launch your next website with Reliable Web Hosting
Join thousands of businesses that trust our hosting services — everything you need to build a fast, secure, and reliable website that delivers every time.
See our plansWe'll explore what direnv is, how to integrate it with nvm (Node Version Manager), and how to manage project-specific environments seamlessly
direnv?direnv is a shell extension that automatically loads or unloads environment variables based on the directory you're in. Think of it as dotenv on steroids — it not only loads .env files, but also runs shell scripts, manages Node versions via .nvmrc, and more.
Key Features
Loads .envrc files automatically when entering a directory
Supports .nvmrc and .node-version to auto-switch Node.js versions
Can auto-install Node versions with nvm install
Works with all major shells (bash, zsh, fish, etc.)
direnv + nvmdirenvbrew install direnvsudo apt install direnvdirenv into Your ShellYou need to add the following line to your shell's configuration file to enable direnv.
zsh:echo 'eval "$(direnv hook zsh)"' >> ~/.zshrcbash:echo 'eval "$(direnv hook bash)"' >> ~/.bashrcThen apply the changes:
source ~/.zshrc # or ~/.bashrc.envrcNavigate to the root of your Node.js project:
echo 'use_nvm' > .envrcThis tells direnv to look for a .nvmrc file and load the specified Node version.
Now authorize direnv to load the .envrc:
direnv allowIf you have a .nvmrc file (e.g. v20.12.2), direnv will:
Detect it
Run nvm install (if the version isn't installed yet)
Automatically run nvm use when you enter the directory
use_nvm WorksThe use_nvm directive is a built-in direnv helper that does all the heavy lifting. Internally, it functions like this:
use_nvm() {
export NVM_DIR="$HOME/.nvm"
source "$NVM_DIR/nvm.sh"
local node_version=$(<.nvmrc)
nvm install "$node_version"
nvm use "$node_version"
}You can even customise it further by placing a modified version in:
~/.config/direnv/lib/use_nvm.sh.env and .nvmrc in .envrcWant to load environment variables too? Update your .envrc:
use_nvm dotenvOr declare environment variables directly:
use_nvm export NODE_ENV=development export API_URL=https://api.example.comCommit: .nvmrc and .envrc
Ignore: .env (if it contains secrets)
Update your .gitignore:
# Ignore secret env files
.envUsing direnv with nvm is a game-changer for managing Node.js versions and environment variables per project. It reduces human error, ensures consistency across teams, and simplifies onboarding and deployment processes.
Whether you're building a startup or managing an enterprise-grade Node.js project, we offer consulting, automation, and environment setup services tailored to your stack.
Contact us today to streamline your workflow and focus on what you do best — building amazing software.
Join thousands of businesses that trust our hosting services — everything you need to build a fast, secure, and reliable website that delivers every time.
See our plans
Cybercrime is increasing, with attackers often exploiting weakly protected accounts as the easiest entry point to systems
A major threat businesses face is typosquatting—deceptive domains tricking users, stealing trust, and damaging brand reputations
Small businesses need hosting providers with affordability, reliability, security, and scalability to succeed online
Powered by WHMCompleteSolution