.node-version is a file read by various tools on an individual basis for specifying the target node version. Version managers which use/respect it include (in alphabetical order):

  • asdf-nodejs Node.js plugin for asdf version manager. (macOS, Linux)
  • avn Automatic Version Switching for Node. (macOS, Linux)
  • chnode Changes shell's current Node.js version by updating $PATH (macOS, Linux)
  • dev dev is built on pkgx, a single, standalone binary that can run anything (macOS, Linux)
  • direnv unclutter your .profile. (macOS, Linux)
  • fnm Fast and simple Node.js version manager, built in Rust. (macOS, Linux, Windows)
  • mise Polyglot switcher compatible with asdf plugins, built in Rust. (macOS, Linux)
  • n Interactively Manage Your Node.js Versions. (macOS, Linux)
  • nenv Groom your app’s Node environment with nenv (macOS, Linux)
  • nodeenv Virtual environment for Node.js & integrator with virtualenv (macOS, Linux, Windows)
  • nodenv Manage multiple NodeJS versions. (macOS, Linux)
  • nodist Natural node.js and npm version manager for windows. (Windows)
  • nve Run any command on specific Node.js versions (macOS, Linux, Windows)
  • nvm-rust A cross-platform node version manager that doesn't suck (macOS, Linux, Windows)
  • nvm.fish Node.js version manager lovingly made for Fish. (macOS, Linux)
  • nvs Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js. (macOS, Linux, Windows)
  • setup-node (configuration) Set up your GitHub Actions workflow with a specific version of node.js
  • vfox The Multiple SDK Version Manager

Other products which use .node-version include:

  • bitrise The CI/CD Platform built for Mobile DevOps
  • Cloudflare Pages Build fast sites. In record time.
  • Hostman Hosting platform that deploys your web applications
  • netlify Instantly build and deploy your sites to our global network from Git.
  • paketo Your app, in your favorite language, ready to run in the cloud
  • preferred-node-version Get the preferred Node.js version of a project or user
  • Pulumi Deployments Automate, Secure, and Manage Everything You Run in the Cloud
  • ReadyMage Magento 2 and PWA managed auto-scalable infrastructure hosting service.
  • render A Cloud for the New Decade
  • Spaceship Minimalistic, powerful and extremely customizable Zsh prompt
  • starship The minimal, blazing-fast, and infinitely customizable prompt for any shell!
  • typescript-action Create a TypeScript Action with tests, linting, workflow, publishing, and versioning
  • Vercel Conformance Conformance provides tools that run automated checks on your code for product critical issues, such as performance, security, and code health.
  • VMware Tanzu The Tanzu Node.js Buildpack supports several popular configurations for Node.js apps.

Note: nvm does not support reading a .node-version file.

I documented usage and some supported features here: https://github.com/shadowspawn/node-version-usage

Answer from shadowspawn on Stack Overflow
Top answer
1 of 7
81

.node-version is a file read by various tools on an individual basis for specifying the target node version. Version managers which use/respect it include (in alphabetical order):

  • asdf-nodejs Node.js plugin for asdf version manager. (macOS, Linux)
  • avn Automatic Version Switching for Node. (macOS, Linux)
  • chnode Changes shell's current Node.js version by updating $PATH (macOS, Linux)
  • dev dev is built on pkgx, a single, standalone binary that can run anything (macOS, Linux)
  • direnv unclutter your .profile. (macOS, Linux)
  • fnm Fast and simple Node.js version manager, built in Rust. (macOS, Linux, Windows)
  • mise Polyglot switcher compatible with asdf plugins, built in Rust. (macOS, Linux)
  • n Interactively Manage Your Node.js Versions. (macOS, Linux)
  • nenv Groom your app’s Node environment with nenv (macOS, Linux)
  • nodeenv Virtual environment for Node.js & integrator with virtualenv (macOS, Linux, Windows)
  • nodenv Manage multiple NodeJS versions. (macOS, Linux)
  • nodist Natural node.js and npm version manager for windows. (Windows)
  • nve Run any command on specific Node.js versions (macOS, Linux, Windows)
  • nvm-rust A cross-platform node version manager that doesn't suck (macOS, Linux, Windows)
  • nvm.fish Node.js version manager lovingly made for Fish. (macOS, Linux)
  • nvs Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js. (macOS, Linux, Windows)
  • setup-node (configuration) Set up your GitHub Actions workflow with a specific version of node.js
  • vfox The Multiple SDK Version Manager

Other products which use .node-version include:

  • bitrise The CI/CD Platform built for Mobile DevOps
  • Cloudflare Pages Build fast sites. In record time.
  • Hostman Hosting platform that deploys your web applications
  • netlify Instantly build and deploy your sites to our global network from Git.
  • paketo Your app, in your favorite language, ready to run in the cloud
  • preferred-node-version Get the preferred Node.js version of a project or user
  • Pulumi Deployments Automate, Secure, and Manage Everything You Run in the Cloud
  • ReadyMage Magento 2 and PWA managed auto-scalable infrastructure hosting service.
  • render A Cloud for the New Decade
  • Spaceship Minimalistic, powerful and extremely customizable Zsh prompt
  • starship The minimal, blazing-fast, and infinitely customizable prompt for any shell!
  • typescript-action Create a TypeScript Action with tests, linting, workflow, publishing, and versioning
  • Vercel Conformance Conformance provides tools that run automated checks on your code for product critical issues, such as performance, security, and code health.
  • VMware Tanzu The Tanzu Node.js Buildpack supports several popular configurations for Node.js apps.

Note: nvm does not support reading a .node-version file.

I documented usage and some supported features here: https://github.com/shadowspawn/node-version-usage

2 of 7
49

There are a few version managers for node.js respecting .node-version file:

  • avn - Automatic Node Version Switching
  • nodenv - Yet another version managers
  • asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more, provided you configure it accordingly
  • nvs - Node Version Switcher

There may be some other version managers, but I'm not aware of them.

I don't know which particular version manager Atom uses. nodenv have more stars on GitHub, but avn looks more mature and better maintained for me, not to mention its compatibility with both n and nvm.

🌐
GitHub
github.com › shadowspawn › node-version-usage
GitHub - shadowspawn/node-version-usage: Document current usage of .node-version file
Allowing any line ending makes it easier for users and especially Windows users to create a file compatible with your product. ... The compatibility table deliberately only covers commonly supported formats and is not intended to be a full feature table. Some utilities do support version specifiers beyond just a numeric version. Often utilities read the .node-version file contents and then use their normal version parsing code.
Starred by 265 users
Forked by 8 users
Discussions

Is there a project level way to specify nvm versions and avoid nvm use?
You can add a `.nvmrc` file to the project to store the version, but you'll still need to `nvm use` inside the directory to take advantage of it. I don't know of another way. More on reddit.com
🌐 r/node
20
17
January 8, 2023
Honor .node-version file
Forgive me if this has been discussed before, but I didn't find anything beyond #110 (comment). It would be really nice to see the various Node version managing tools coalesce around a common "version config file", analogous to Ruby's .r... More on github.com
🌐 github.com
60
August 4, 2015
I'm trying to find the node version of an old project. Can someone help me out?
You can't. It can be listed in package.json if the project enforces it, otherwise it's whatever you had running in your CLI when you ran it last 🤷‍♂️ More on reddit.com
🌐 r/reactjs
6
0
August 31, 2023
🌐
Node.js
nodejs.org › en › download
Node.js — Download Node.js®
InfoWant new features sooner? Get the latest Node.js version instead and try the latest improvements!
🌐
Upsun
fixed.docs.upsun.com › languages › nodejs › node-version.html
Manage Node.js versions | Upsun Fixed Docs
You could also specify a different file or use environment variables. The n package works for various Unix-like systems, including Windows Subsystem for Linux. Add the desired Node.js version to your environment using .nvmrc, .n-node-version, .node-version, or package.json.
🌐
Microsoft Learn
learn.microsoft.com › en-us › windows › dev-environment › javascript › nodejs-on-windows
Set up Node.js on native Windows | Microsoft Learn
The installer will point you to the releases page for the most recent version. Download the nvm-setup.zip file for the most recent release. Once downloaded, open the zip file, then open the nvm-setup.exe file. The Setup-NVM-for-Windows installation wizard will walk you through the setup steps, including choosing the directory where both nvm-windows and Node.js will be installed.
Find elsewhere
🌐
Reddit
reddit.com › r/node › is there a project level way to specify nvm versions and avoid nvm use?
r/node on Reddit: Is there a project level way to specify nvm versions and avoid nvm use?
January 8, 2023 -

I love the node version manager, since different projects might require different node versions for various reasons - often the CI/CD tooling or cloud infrastructure requirements.

The problem I have is when switching between projects, I need to remember to run nvm use.

To make sure I don't forget, I fill in the engines section like this:

"engines" : {
"npm" : ">=8.0.0 <9.0.0",
"node" : ">=18.0.0 <19.0.0"
}

However, is there a nicer way where I don't have to switch, and somehow things are symlinked to the right place.

I use Windows out of habit, but happy for a Linux answer as I am happy to work there too.

🌐
Mise-en-place
mise.jdx.dev › lang › node.html
Node | mise-en-place
February 8, 2025 - It also supports .tool-versions, .nvmrc or .node-version file to find out what version of Node.js should be used.
🌐
Docker
hub.docker.com › _ › node
node - Official Image | Docker Hub
Image updates: official-images repo's library/node label⁠ official-images repo's library/node file⁠ (history⁠)
🌐
Vercel
vercel.com › docs › conformance › rules › REQUIRE_NODE_VERSION_FILE
REQUIRE_NODE_VERSION_FILE
March 4, 2025 - Using a Node.js version file (.node-version or .nvmrc) ensures that all developers and tooling (e.g., CI systems) use the same version of Node.js.
🌐
GitHub
github.com › nvm-sh › nvm › issues › 794
Honor .node-version file · Issue #794 · nvm-sh/nvm
August 4, 2015 - Since n already supports .node-version, this would make it so that regardless of the Node version manager used, there could be some degree of guarantee that the correct version will be used.
Published   Aug 04, 2015
🌐
Node.js
nodejs.org › api › fs.html
File system | Node.js v25.2.1 Documentation
All file system operations have synchronous, callback, and promise-based forms, and are accessible using both CommonJS syntax and ES6 Modules (ESM). Promise-based operations return a promise that is fulfilled when the asynchronous operation is complete. import { unlink } from 'node:fs/promises'; try { await unlink('/tmp/hello'); console.log('successfully deleted /tmp/hello'); } catch (error) { console.error('there was an error:', error.message); }const { unlink } = require('node:fs/promises'); (async function(path) { try { await unlink(path); console.log(`successfully deleted ${path}`); } catch (error) { console.error('there was an error:', error.message); } })('/tmp/hello');copy
🌐
freeCodeCamp
freecodecamp.org › news › fnm-fast-node-manager
How to Use fnm – Fast Node Manager
June 9, 2022 - You will have to paste that code in a file named _fnm in a directory specified in the FPATH environment variable: ... See the output of echo $FPATH to get all the possible directories and replace <a_fpath_dir> with an actual directory. It is recommend to use a user local path. If there are no such path, you can set one in your .zshrc by adding this line: fpath=(/home/$USER/your/favorite/path/here $fpath) To see all the different Node versions ...
🌐
GitHub
github.com › nvm-sh › nvm
GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
Afterwards, nvm use, nvm install, nvm exec, nvm run, and nvm which will use the version specified in the .nvmrc file if no version is supplied on the command line. For example, to make nvm default to the latest 5.9 release, the latest LTS version, or the latest node version for the current directory:
Starred by 90.3K users
Forked by 9.7K users
Languages   Shell 98.0% | Makefile 1.2%
🌐
npm
docs.npmjs.com › files › package.json
package.json
October 4, 2025 - Documentation for the npm registry, website, and command-line interface
🌐
To The New
tothenew.com › home › node version using .nvmrc
Node Version Using .nvmrc | TO THE NEW Blog
November 28, 2024 - Step 6:- Here, we can switch to the Node.js version based on the requirements. ... The .nvmrc file is a simple text file that configuration file for nvm (Node Version Manager). It’s used to install and manage the node.js versions.
🌐
DEV Community
dev.to › sunnysingh › quick-tip-manage-node-versions-for-your-projects-1d2d
Quick tip: Manage Node versions for your projects - DEV Community
November 5, 2020 - NVM obviously uses the .nvmrc file, but some other tools and services may as well. Notably, Netlify uses nvmrc to detect which Node.js version to build your site with.
🌐
BlueVPS
bluevps.com › blog › how to check node version [step-by-step guide]
How To Check Node Version [Step-By-Step Guide] - Blog - BlueVPS
Go to the official Node.js website and select the appropriate Node.js Windows Installer based on your system architecture: For a 64-bit system, choose the x64-bit installer. For a 32-bit system, choose the x32-bit installer.
🌐
Medium
medium.com › @erik.01 › the-ultimate-guide-to-node-js-version-managers-nvm-nvs-fnm-volta-and-asdf-part-1-af7d3eb928e4
The Ultimate Guide to Node.js Version Managers: NVM, NVS, fnm, Volta, and asdf | Part 1 | by Erik Harutyunyan | Medium
September 9, 2024 - Flexibility: It allows one to run or install many Node.js versions on one device, not conflicting. Compatibility: NVM works on most Unix-like systems and runs on macOS or Linux. For Windows, there’s a port called nvm-windows. Support for .nvmrc files: This file allows you to automatically switch to the desired Node.js version when entering a project directory.
🌐
npm
docs.npmjs.com › downloading-and-installing-node-js-and-npm
Downloading and installing Node.js and npm | npm Docs
We do not recommend using a Node installer, since the Node installation process installs npm in a directory with local permissions and can cause permissions errors when you run npm packages globally. Note: to download the latest version of npm, on the command line, run the following command:npm install -g npm