NPM vs NPX

NPM vs NPX

if you are a JavaScript Developer then you have probably used both NPM and NPX But what's actually the difference between both of them?

Well, it turns out that NPX is actually a tool that gets included in NPM version 5.2 and later. So NPX is a tool that lives within NPM.

NPM is Node Package Manager and these packages are just different node-related libraries or files and folders that get created by different developers out there Online, that we can use in our node or javaScript-based projects. So what does that means is that NPM is what we use to coordinate and leverage these packages that we download, create react app is an example of that it's a tool that Facebook build for us to create a React app quickly and easily.

NPM

We can do this with NPM and not only with NPX. NPM is an installation as well as a management environment. with NPM we can install and create react apps locally and globally, locally standing for the current folder that we are working on

npm install create-react-app

what this will do is install Create React app locally within the current folder and anything inside the folder can leverage this Create React app.

But if I wanted to use create react app across multiple folders and have only one version of it, Well it turns out that we can install it globally.

npm install -g create-react-app

so with this, we are simply installing the latest version of the React app. We use to do this before NPX

Let's see NPM vs NPX using cowsay which is a package that draws out a cow that says whatever we pass into it.

we will do npm install -g cowsay and it will download the cowsay globally

now i can do cowsay hello and it will draw a cow with hello

if i want to check the location of the cowsay we can do is npm list cowsay this will give me the location of the installed package

it will say empty because I have installed it globally and not only in the current folder. let's check the global location of the project by npm list -g cowsay

with NPM we see that if we want to install a package we need to download it to the disk or hard drive of our computer this could be our local project folder or globally let us go ahead and uninstall the cowsay from our computer. npm uninstall -g cowsay

NPX

we are gonna do npx cowsay hello now if we run this we will see that it will first download it and it will execute it immediately

before npx we used to download it and then run it, what NPX does is that it directly installs the required files and it executes them immediately.

now if I check for the cowsay package locally npm list cowsay it will give us empty as a result

let us check for it globally it will again give us empty npm list -g cowsay

So what this means is that it downloads the latest package and executes it immediately then it deletes it from the disk. the main advantage of it is that we do not have to clog up or disk with all of these packages, so it all comes down to using it when it is needed.