Node.js environments on VIP support all Node.js Long Term Support (LTS) releases in Active or Maintenance status, as well as the next Active LTS candidate. A site will stay “pinned” to a major version (e.g., v16) until a change is requested. Platform updates for minor releases and security updates for Node.js are applied automatically.
Node.js version managers such as nvm may be useful for local development and testing. If they are helpful for a development workflow, the resulting .nvmrc or .node-version files can be committed to a wpvip GitHub repository. These files have no effect on the behavior of an application on a VIP environment.
Updating Node.js major versions
Being prepared for Node.js major version updates and updating early is recommended. Including updates to a site’s dependencies as part of the Node.js update process can help to consolidate testing and development efforts.
Node.js major version updates should be tested thoroughly on a local environment first. Make sure that this testing includes reinstalling dependencies from scratch since the behavior of
npm install can vary across major versions of Node.js.
Once the local testing for the updated Node.js major version is complete, create a VIP Support ticket that includes the following information:
- State the desired major release version of Node.js
- List the environments (e.g., production, develop, preprod) that the upgrade the upgrade should be applied to
- Propose a date and time (in UTC) for each environment’s update. Non-production environments should be updated first. A sufficient amount time should be allowed for additional testing to be completed on the non-production environments before the proposed time for the update to occur on production.
When Node.js is updated, an application’s code is rebuilt and deployed with the updated version. During the update, no downtime for the environment will occur.
If an environment is using a Node.js version that is reaching end-of-life soon, VIP Support will reach out and provide a deadline for the environment to be updated. A VIP site cannot run on a Node.js version that no longer has active or maintenance LTS status, because that version will no longer receive security updates.
Node.js versions in automated testing
For Node.js applications that have automated testing, running tests in both the current Node.js version and next LTS release candidate are helpful for staying prepared for new LTS versions. Automated testing should pin to a major Node.js version, and not to minor or patch versions.