TLDR: use nvm to manage
node.js versions; develop and deploy with the same version.
$ nvm ls-remote|tail to see the latest versions
$ nvm ls-remote|grep LTS to see the “long term support” versions
$ nvm install lts/erbium to install “erbium” (the latest release of version 12)
$ nvm install 14 to install the latest version 14.x.x release
You always want to develop your server side projects and deploy your project with the same version of node. Hopefully this is intrinsically clear why. Imagine you develop in node version 14 with
let support BUT you deploy in version 4 without
rest parameters or any of the nice features your code uses.
Note: Some features actually get deprecated, while some (tail recursion) don’t exist for any version.
Which version should I use?
Previously, this was a huge deal since each version brought HUGE changes. Nowadays, using the LTS version gets you many of the features you need or learn about.
The node release calendar will let your know the “LTS” (long term support) versions. If you want to build in a corporate production setting, you adopt this version. Make sure to check your deployment service – here is the info for Heroku.
However, if you are developing and exploring you can adopt the latest versions to take advantage of new features. Version 14 has the usual performance updates and additional features like “Optional Chaining” and “Nullish Coalescing”.
This is a rejection of your browser version.
Older browsers were very far from the standard and that caused a lot of unpredictable bugs – you often saw these “please upgrade your browser” pages. If you work on the web and never had to build these “deprecating IE 8” pages, you must take a deep breath and be grateful.
If you are using a modern web-framework like a batteries included react (next.js, nuxt.js), this will likely be taken care of for you. If you are going vanilla, you will need to polyfill the advanced features you want to use.
But feel confident that many large companies have already decided not to support the oldest browsers (note still supporting IE) because of the actual usage numbers. Be free.