Read more

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

Henning Koch
June 17, 2019Software engineer at makandra GmbH

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.

Illustration book lover

Growing Rails Applications in Practice

Check out our e-book. Learn to structure large Ruby on Rails codebases with the tools you already know and love.

  • Introduce design conventions for controllers and user-facing models
  • Create a system for growth
  • Build applications to last
Read more Show archive.org snapshot

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:

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.

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
Posted by Henning Koch to makandra dev (2019-06-17 18:20)