DEV Community

npm vs npx - which to use when?

Dragoljub Bogićević on March 31, 2020

Let's see what is the difference between these two. What is npm npm (Node package manager) is the world's largest software registry. It...
Collapse
 
mishafrenkman profile image
Michael Pomogajko

npx is mainly used to run one-off commands without having to install them.
It then fetches the binary from registry, runs it and deletes it again.
So it’s best used for stuff like npx create-react-app

Collapse
 
projektorius96 profile image
Lukas Gaucas • Edited

That's what it means when they say , that "npx let's you avoid versioning " i.e. if central server (in this case public npm registry) is always up to date , npx does upstreaming job for you without worry of versioning with "npm" manually !

Collapse
 
mishafrenkman profile image
Michael Pomogajko

So in your example you don’t have to install eslint in the first place and can directly type npx eslint

Collapse
 
bogicevic7 profile image
Dragoljub Bogićević

As well as github gists - this one is the rather neat functionality...

Collapse
 
martyonthefly profile image
Sylvain Marty

What is the difference between npx and Yarn? :-)

Collapse
 
mburszley profile image
Maximilian Burszley • Edited

That's not an equal comparison. Npm and Yarn are the comparison and Yarn integrates what npm calls npx into its command without needing to call a different command.

All npx does is add the .bin folder to your path before searching for a command to execute, in essence.

Collapse
 
suchitra_13 profile image
Suchitra

I know this is not a good comparision but I have a doubt in mind that .. in case of "npm" if we don't want to install some dependency locally we generally use "npx".
So, in case of "yarn" package manager what should we use when we don't want to instally some dependency!
Nutshell "yarn" is the alternative of "npm" so, what is alternative of "npx" in terms of "yarn" package manager??

Thread Thread
 
mh_jsx profile image
Mudasir H

Basically yarn is just an improvement to npm. Yarn consume the same package.json format and can install npm packages.

Collapse
 
bsorrentino profile image
bsorrentino

In my opinion discussion is not “one vs another” but rather “one with another”

npx extends and complete npm, one of the my preferred feature is npx-run that allowed me to use npm script also whether we have set (for security reasons) —ignore-scripts=true

Collapse
 
bogicevic7 profile image
Dragoljub Bogićević • Edited

Yeah, it is also good for trying packages, different versions of them...

Collapse
 
stefant123 profile image
StefanT123

Just to note that since npm version 5.2.0 npx is pre-bundled with npm

Collapse
 
bogicevic7 profile image
Dragoljub Bogićević

Tnx for pointing that out, I have added it to the post...