Handy checklist for everywhere and anywhere you might need to set the version when upgrading to the latest Node.
Here's the comprehensive list with code examples, using Node version 22 as the example:
// package.json
{
"engines": {
"node": "22.x"
}
}
// https://docs.npmjs.com/cli/configuring-npm/package-json#engines
// .nvmrc
22
// https://github.com/nvm-sh/nvm#nvmrc
// .node-version
22
// https://github.com/shadowspawn/node-version-usage
// .npmrc
use-node-version=22
// https://docs.npmjs.com/cli/configuring-npm/npmrc
# .github/workflows/ci.yml
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up Node.js
uses: actions/setup-node@v2
with:
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs#specifying-the-nodejs-versionz
node-version: '22'
Reminder: Run npm install
, pnpm install
, etc... after updating the Node version to ensure dependencies are compatible.
⭐️ Defaults to Node Version in package.json/engines https://vercel.com/docs/project-configuration#project-configuration/build Available Node Versions
⭐️ Setting .node-version or .nvmrc will override the version set in the Netlify UI.
# netlify.toml
[context.production]
environment = { NODE_VERSION = "22.0.0" }
# https://docs.netlify.com/configure-builds/manage-dependencies/#node-js-and-javascript
Unfortunately, as of June 2024 this can only be set in the Netlify UI.
AWS_LAMBDA_JS_RUNTIME=nodejs22.x
Netlify Runtime Node Version Support Lambda Versions
npm install --save-dev @types/node@22
pnpm add --dev @types/node@22
# https://www.npmjs.com/package/@types/node
AWS Lambda uses the runtime
parameter in the function configuration. Update it via the AWS Management Console or AWS CLI.
- AWS Console: Link to Console
- AWS CLI:
aws lambda update-function-configuration --function-name my-function --runtime nodejs22.x
# https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
# Dockerfile
FROM node:22
# https://docs.docker.com/samples/node/
To specify the version of Node.js to use on Heroku, use the engines section of the package.json. Drop the v to save only the version number. Heroku Node.js Version
# .circleci/config.yml
version: 2.1
jobs:
build:
docker:
- image: circleci/node@5
steps:
- checkout
- node/install:
node-version: '22'
⭐️ If you don't specify a Node version, Travis CI will use the default to the version set in .nvmrc
# .travis.yml
language: node_js
node_js:
- "22"
Update the Node version in the platform
configuration via the AWS Management Console or CLI.
- AWS Console: Link to Console
- AWS CLI:
aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace=aws:elasticbeanstalk:container:nodejs,OptionName=NodeVersion,Value=22
# https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux.html#platforms-linux.nodejs
Set engines.node
in package.json
as shown in item 1.
- Google Cloud Console: Link to Console
- Google Cloud CLI:
gcloud functions deploy my-function --runtime nodejs22
# https://cloud.google.com/functions/docs/concepts/nodejs-runtime
Ensure the CLI tool provides an output summary of all changes made, listing the files and their updated values. This helps in verifying the updates and troubleshooting any issues.
By following this comprehensive checklist and utilizing the code examples, you can ensure a smooth transition to a new Node version across various environments and configurations.