Exploring Node.js, Node Package Manager and Node Version Manager

Following tutorials, videos or reading books to learn React can often cause you to miss some important knowledge. Typically, when setting up an example project, you'll just be instructed to "install Node.js" or "copy this NPM command" - without anyone explaining how the whole ecosystem works.

I've spent a bit of time today working through some FAQs and tutorials, and here is what I've found:

Node/Node.js

Node and Node.js are actually two different concepts. It's slightly confusing, but what you install and use in your development environment is Node.js. In short - Node.js is a specific implementation of Node.

NVM - Node Version Manager

If you develop and support a variety of web applications, you may well find that they require or support different versions of Node.js.  For example, if you're working with Microsoft SharePoint SPFX, a specific version (or range of versions) is required. NVM allows you to install and manage more than one version of Node.js on a single machine.  You can use NVM to switch between installed Node.js versions quickly and easily.  As you work with more and more projects, over time you're more likely to find NVM is a necessity.

NPM - Node Package Manager

NPM is shipped with Node.js, and is used to install packages and manage dependencies.  Packages can be installed either locally or globally.   

What is the difference between NPM and NPX?

NPM is used to install a package, NPX is used to execute an installed package. 

What is Gulp?

Gulp runs tasks. Some examples of the type of tasks Gulp would be used to run - spin up a development webserver, minify assets such as JS and CSS files, compile/process SCSS or LESS files, run tests.

What is Yeoman?

Yeoman "scaffolds" (sets up) a new application - generating a build configuration,and installing dependencies via a package manager (e.g. NPM).

Comments