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:
v20.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.
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