Documenting your Rails project's Node.js version in .nvmrc
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
Copynvm use
There are
some hacks
Archive
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 avoid declaring Node versions with minor and patch versions. Instead we prefer declaring
LTS release lines
Archive
in our .nvmrc
.
To use the latest release of Node 16 LTS your .nvmrc
should be:
Copylts/gallium
To use the latest release of Node 14 LTS your .nvmrc
should be:
Copylts/fermium
New LTS releases are assigned line names ("argon", "carbon" etc.) as they become active. The current list of LTS releases and their line names can be viewed on the Node.js release page Archive .
Note
If you are using unmanaged Node.js with capistrano-opscomplete Archive your
.nvmrc
must contain a specific node version, not an LTS alias.
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:
Copyyarn rake assets:precompile