Documenting your Rails project's Node.js version in .nvmrc

Updated . Posted . Visible to the public. Repeats.

Not all versions of Node.js are compatible with each other. Also npm packages may require a minimum or maximum version of Node.js. We use nvm on our development PCs so we can operate multiple versions of Node.js in parallel.

To make sure that all developers use a compatible version of Node.js, your Rails project should declare the required Node.js in a file called .nvmrc.

When a .nvmrc exists, developers can cd in your project directory and activate the project's node version with

nvm use

You may want to automatically activate a Node version as you cd into a directory. We have a card about automatically switch version when changing directories which provides a solution that works very well for us.

Picking the right Node version

We prefer using one of Node's LTS release lines Show archive.org snapshot , as they get minor updates over some year.

For example, if we want to use Node 20 LTS, we would look up its latest release and fill in:

20.11.1

Warning

Don't use a nondeterministic version like lts/gallium. This is not supported by all tools. In particular asdf Show archive.org snapshot is sunsetting its support for LTS aliases.
Also don't use versions prefixed with v. That's not supported by our newest favorite mise Show archive.org snapshot .

Testing compatibility

In general, a recent Rails projects should use the currently active LTS version of LTS.

If you are unsure about compatibility, these two commands should work:

yarn
rake assets:precompile
Henning Koch
Last edit
Michael Leimstädtner
Keywords
opscomplete:nodejs:ensure
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2019-06-17 16:20)