Vovy pins each project to its Node version with an .nvmrc file and sets your shell to switch automatically when you cd into the folder.
This project needs Node 20 but my other one needs 22, make them both work
How it works
- Find each project's version: Vovy reads the engines field in package.json, CI files and your host's settings to learn which Node version each project needs.
- Install the missing versions: Vovy uses nvm to install each needed version side by side. Nothing is removed.
- Add an .nvmrc to each project: Vovy writes a one-line .nvmrc file with the version number. It tells nvm, and teammates, which Node to use.
- Turn on auto-switching: Vovy adds a small hook to ~/.zshrc that runs nvm use whenever you open a folder with an .nvmrc.
- Test both projects: Vovy opens each project, shows node -v switching correctly, and gives you a card of what is pinned where.
What you provide
- Your project folders
- nvm installed (Vovy can do this)
What you get
- Every project on its correct Node
- Automatic switching per folder
- .nvmrc files teammates can use
- Fewer engine is incompatible errors
FAQ
What does "The engine node is incompatible with this module" mean?
A package requires a different Node version than the one you are running. Switching to the pinned version fixes it.
Does Vercel read .nvmrc?
Vercel uses the engines field in package.json or the Node.js Version setting in your project settings. Vovy keeps them in sync.
How many Node versions can I keep?
As many as you like. Each takes a few hundred megabytes, and nvm uninstall removes old ones.
Related tasks
All tasks