If you're a web developer, you are probably familiar with npm. It is the most popular package manager used by over 17 million developers worldwide. But do you know what npx is and how it is different from npm?
In this article, I'll show the differences between these two tools. We'll also discuss their use cases, so by the end, you should have a clearer perspective on when to use npx rather than npm.
Let's get started! ✌
What is NPM?
Npm has command-line tools for managing dependencies, making installing, updating, and maintaining packages within your projects incredibly easy. More than 17 million developers use this package manager, allowing them to create and share their packages with the broader community.
Npm is also free to use, and it contains more than two million packages, making it the world's largest software registry.
Npm is included in the Node.js installation. So, if you want to install npm on your machine, install Node.js first.
If you want to check if you have Node.js installed, then use this command in the terminal:
The same goes for the npm:
What is NPX?
Npx, short for Node Package Execute, is an npm package runner. It simplifies the execution of package binaries and scripts in Node projects.
Npx is a tool that can execute any package from the npm registry without installing it. So if there is a package we just want to use once, we can avoid installing it and execute it with npx.
Npx is included in the npm version 5.2.0 and later. You can also install it globally using the command below:
npm install -g npx
If you want to check if you have npx installed, then just use this command in the terminal:
What Are The Differences Between NPX and NPM?
If you want to run some package through npm, then you need to make sure that this package is specified in package.json and installed locally.
On the other hand, with npx, if the package was not previously installed, it won't be installed by npx. Instead, npx will create a temporary cache for holding the package binaries, and once we finish the package execution, npx will remove it from the system.
Thanks to that, we make sure that our system does not get cluttered by different packages.
NPX vs. NPM - Common Use Cases
You should use npx if:
- You want to test a package or run it occasionally.
- You want to execute a package that wasn’t previously installed.
- You do not have permission to install it globally.
- You don’t want to install a package either globally or locally.
A popular use case for npx is
npx create-react-app app-name. This command generates a react app boilerplate. By using npx instead of npm, we make sure that we use the latest version of a generator, so we do not have to upgrade each time we are about to use it.
So what happens if we use npm instead of npx to create a react project?
npm install create-react-app app-name
In that case, an npm package
create-react-app would be installed inside
node_modules. And nothing more would happen because npm only installed this package without executing it.
So, if you would like to finish the process of creating a React application without npx, you would also have to use this command:
npm install create-react-app app-name node ./node_modules/create-react-app/index.js app-name
With npx, it is different because it will search node_modules for the package, and if the package is not already installed, it will download its binaries, cache them, and then execute. So, it allows us to use just one command:
npx create-react-app app-name
This is an example of how npx makes it pretty easy for us to run a package without installing it.
Is NPX installed with NPM?
Yes, npx is installed with npm by default. Npx comes bundled with the package manager, starting from npm version 5.2.0. If you use npm, you probably have already installed npx on your machine.
What is The Advantage of NPX?
The main advantage of npx is its ability to execute package binaries and scripts without installing the packages. This feature helps keep your workspace organized and ensures you're always using the latest version of a package. Besides that, npx is perfect for testing packages before integrating them into your codebase, and it saves you time when bootstrapping new projects.
What is NPX Used For?
Npx is a command-line tool primarily used for executing Node.js packages without installing them. It simplifies the development process by allowing developers to test new packages and experiment with different package versions without cluttering their systems with too many installations.
As we've seen, although npx and npm seem similar, they are two different tools. While npm has many more use cases, npx simplifies some things for us.
Hopefully, I've answered your questions, and now you know the difference between these two tools and when to use each.
Happy coding ✌
Is there a mistake in the article? Let me know.