Setting the Node.js Version for Nixpacks Builds

Flightcontrol’s default Nixpacks build type uses Node.js 18 by default.

This may not be the version of Node that you use for your own project, so Nixpacks supports setting the Node.js version for your builds.

The supported major versions of Node.js are 14, 16, 18, 20, and 22

When you use Nixpacks for builds, you can set the major Node version, but not the minor node version. For example, you can set the Node version to 18, but not 18.17.2.

Using the package.json File

We recommend setting the Node version in your package.json file, so that it’s clear to anyone working on your project what version of Node is required. This also works with other build and continuous integration tools.

To set the Node version in your package.json file, add the following to the top level of your package.json file:

{
  "engines": {
    "node": "18"
  }
}

Nixpacks will use the major version of Node.js specified in your package.json file.

Providing a NIXPACKS_NODE_VERSION Environment Variable

The other alternative is to tell the Nixpacks build to use a specific version of Node.js by setting the NIXPACKS_NODE_VERSION environment variable. Set this environment variable to one of the supported major versions of Node.js (14, 16, 18, or 20).

For example, to use Node.js 20, you would set the NIXPACKS_NODE_VERSION environment variable to 20.

This alternative is useful if you don’t want to modify your application code, but we do recommend setting the version of Node you use in your package.json file.