"If you have not done so already, you will need to install node.js ..." You read these messages and you are disconnected. Why?
NodeJS is Google V8 "running on it." This is a JS engine with an additional low-level API (network, I / O, etc.). NodeJS provides a “missing platform” for JS developers who were limited to only working in a browser.
why is this dependency on node.js and NPM?
Node.js, in addition to using it as an application (servers, proxies, bots, etc.), it can also be used as a tool and help development. Take, for example, Grunt, which is a scripting automation tool that is similar to Make. Scripts in simple JS, you do not need to learn another tool or language for automation. Another tool is Bower, which is a package management interface. All you have to do is bower install jquery
and it installs jquery with this single command. No need to manually download, copy and paste.
NPM, on the other hand, is node.js' package manager. This is a program that manages the modules you use in NodeJS. No need to list your modules manually, and no need to remember them when you are developing somewhere else. As long as you have the list of NPM packages made for you, reinstallation is just a npm install
issue.
Why do we make things complicated?
We do not know. In fact, we make them easy for developers. Instead of worrying about your workflow, managing your libraries, or doing things manually, you can turn off these tasks to some modules that exist in NPM. Then you can just focus on what you are actually doing.
In addition to this, we use node.js to use these libs / frameworks ... How will this lead to the use of these libraries for new JS developers? JS was for relief!
As mentioned above, NodeJS is a universal platform. It can be used as a server (Connect, Express), an automation tool (Grunt), a package management system (using NPM, Bower, etc.), a test platform (QUnit, Mocha), a proxy, a game server, a bot bot.
And this is beneficial, especially to the JS developer, since in JS this is not possible.
JS already has a surplus problem - there are too many active JS libraries / frameworks to choose from - due to writing JS libraries, most of them will soon become inactive. There are too many things to look for that often lead to the creation of multiple frameworks for managing application dependencies, routers, MVC, patterns, etc.
Well, it's nice to have a rich set of frameworks. After studying some of them, your work will be cut in half. A variety of implementations is also good for dealing with different coding styles and different implementation approaches. Some libraries rise from different approaches, others from incompatibility and / or incompleteness of others.
Developers are working hard to make life easier for other developers by normalizing JS quirks (because browser vendors just can't seem like the right standards), and most of them run voluntarily, like free beer — you should be happy for that. In addition, no one forces you to use it in any way.