Skip to content

Updating to Node.js 16

Christian MOTELET edited this page Jan 16, 2022 · 16 revisions

Starting with Signal K server version 1.41.0 (in beta when writing this) the recommended Node.js version is 16. 16 is the active LTS (Long Term Support) version in Jan 2022, with End of Life set at 2024-04-30. Node 10 is past its end of life and won't receive any (security) updates.

While the server proper still works as of 1/2022 with Node 10 we recommend updating to Node 16. Node version update requires reinstalling the server and the plugins that have dependencies with native extensions need to be reinstalled to be compatible with a newer Node major version.

After upgrading to Node 16

Some warnings appear, the messages below do not prevent the server from working properly.
The corrections are being implemented...

  • npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
  • npm WARN deprecated uuid@3.3.2: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
  • npm WARN deprecated debug@4.2.0: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
  • npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.

Plugin details

  • Node-RED: starting with v2.12.0 uses Node-RED v2 that is no longer supported on Node 10
  • signalk-to-nmea2000@2.13.0: WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'signalk-to-nmea2000@2.13.0', npm WARN EBADENGINE required: { node: '10' }, npm WARN EBADENGINE current: { node: 'v16.13.2', npm: '8.1.2' }
    Fixed in progress

How to update Node under Raspberry OS

TBD - please help!