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
There are
some hacks
Show archive.org snapshot
to automatically activate a Node version as you cd
into a directory, but I didn't test them. Note that these hacks might clash with rbenv
which also aliases your cd
to activate the correct Ruby version from .ruby-version
.
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 version without v prefix. This is currently not supported by
capistrano-opscomplete
.
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