npx, a command available in npm since version 5.2, is an incredible tool for running Node code efficiently and comes packed with useful features.
In the following post, I will introduce npx and explore its capabilities.
Easily Run Local Commands
Previously, Node developers used to publish executable commands as global packages to make them readily available in the path. However, this approach had limitations, mainly regarding version control.
With npx, you can simply run npx commandname
to automatically locate the correct reference of the command within the node_modules
folder of your project. This eliminates the need for global installations and guarantees that you can use different versions of the same command.
Installation-less Command Execution
Another remarkable feature offered by npx is the ability to run commands without prior installation. This feature comes in handy for various reasons:
- No need to install anything
- Run different versions of the same command using the
@version
syntax
To demonstrate this feature, consider the cowsay
command that prints a cow saying what you input. For instance, running cowsay "Hello"
will result in the following output:
_______
< Hello >
-------
\ ^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
Normally, if you have cowsay
globally installed, you can execute the command without any issues. However, if you don’t have it installed, an error will occur.
With npx, you can run the cowsay
command without installing it locally:
npx cowsay "Hello"
The same concept applies to other scenarios, such as running the vue
CLI tool or creating a new React app using create-react-app
.
Running Code with Different Node Versions
You can utilize npx to run code with different Node versions by combining the @
symbol with the node
npm package:
npx [email protected] -v #v6.14.3
npx [email protected] -v #v8.11.3
This feature eliminates the need for tools like nvm
or other Node version management tools.
Run Arbitrary Code Snippets from a URL
npx not only enables you to run packages from the npm registry, but it also allows you to execute code from various sources, such as a GitHub gist.
For example:
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
Keep in mind that running code from untrusted sources carries risks, so exercise caution when executing code that you don’t have control over.
In conclusion, npx is a powerful tool that simplifies running Node code and offers various functionalities. Whether you need to run local commands, execute code with different Node versions, or run arbitrary code snippets, npx has got you covered.