NodeSource, a Node.js tooling company, writes about Node releases, npm usage, long-term support, and enterprise Node.
HN commenters cite it as a reference for Node.js release lines and LTS support timelines, plus a post on Guy Fieri in npm packages.
10.x soon will get a LTS badge [1], so we can expect 10.x (not 11.x) will be added into 19.04 apt repository.
nvm is probably the easiest way to install it, but of course, you can do it manually:
1. mkdir -p ~/apps/
2. Download tar.gz and extract it to ~/apps/
3. Change $PATH variable to include the bin directory
NODEJS_DIR="node-v8.12.0-linux-x64" # Change version to appropriate
export PATH=$PATH:${HOME}/apps/${NODEJS_DIR}/bin
4. Validate "installation" by version check
[1]: https://github.com/nodejs/Release#release-schedule
Edit: There is also a snap package with nodejs - https://nodesource.com/blog/announcing-node-js-snap-linux-users/ but there is 12.x (edge channel) not 11.x
snap info node
This bothers me as well. Even tasks as simple as adding a repository are now being "improved" with a curl | sudo bash style setup[1].
However, installing from source with make was (and remains) a mess. It may work if you're dedicated to maintaining one application and (part of) its stack. But even then it usually leads to out of date software and tracking versions by hand.
Many people have this weird aversion to doing basic sysadmin stuff with Linux. What makes it weird is that it's really simple. Often easier than figuring out another deploy system.
(The neckbeard in me blames the popularity of OSX on dev machines.)
[1] https://nodesource.com/blog/nodejs-v012-iojs-and-the-nodesource-linux-repositories
The caret character is a specification in NPM, not semver. It's designed to work within the semantic versioning rules to ensure you get the latest version which includes bug fixes, but also won't include breaking changes.
For example, ^1.3.2 will allow anything greater than 1.3.2 but not 2.0.0. It also has special behaviour that makes it more strict for projects with a major version of 0. If your dependencies follow semver then you'll get bug fixes and security updates without having to do anything or worry about breaking changes.
More info: https://nodesource.com/blog/semver-tilde-and-caret/
Typically Node.js is for high I/O web applications. Thanks to the wonderful asynchronicity of javascript (callbacks "let me know when this is ready/done") it's really wonderful for browser-based programs.
However, there is growing discussion about using Node.js for desktop applications. Please see https://nodesource.com/blog/node-desktop-applications
Not unless you want a lot of people upset that their dependencies aren't installing: "Myles Borins (@thealphanerd) recently ran citgm with yarn, and shared the results. It was 25 minutes faster than npm, but 20 modules failed to install." ( https://nodesource.com/blog/the-definitive-guide-to-the-first-three-days-of-yarn-and-npm/ )
This release timeframe was announced quite a while ago. As others have mentioned the quick jump from 4 to 5 was primarily due to the io.js convergence.
Expect future major releases on a 6 month cadence with LTS releases every 12 months
https://nodesource.com/blog/essential-steps-long-term-support-for-nodejs#how-long