Npx
Don’t worry, we won’t introduce another entirely new thing here. npx is a command line tool that comes installed when installing Node.js. It allows us to run node scripts without installing them first (technically they are ‘cached’ locally, but not installed…)
But first, let us see how to install a package ‘global’
-g flag
Section titled “-g flag”When installing a package, by default it is installed in the current project. This makes sense if we need some kind of library for our project. But since Node.js can do almost anything, it is often used as a tool for us, developers. So it makes sense to install this “global” so it comes availabe everywhere on the command line. The least useful example of this must be cowsay, but is fine to act as an example. Who doesn’t want a cow to say some lines, available -everywhere- on your system? It doesn’t matter where you run the following command, since it will be installed global.
npm install -g cowsayNow, let the beast go! You can run this from everywhere now.
$ cowsay Devine FTW ____________< Devine FTW > ------------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||But now, this is installed. By using the command which you can see where a certain command is installed.
$ which cowsay/Users/demouser/.nvm/versions/node/v18.8.0/bin/cowsayThis can become a hassle when you need different versions somehow.
Let us remove this global installed package:
$ npm uninstall -g cowsay
removed 41 packages, and audited 1 package in 259ms
found 0 vulnerabilities$ which cowsaycowsay not foundWith npx, you can run commands without installing them. The first time you run it, npx will ask to install it, but in fact, it is added to a cache…
$ npx cowsay devineNeed to install the following packages: cowsay@1.5.0Ok to proceed? (y) ________< devine > -------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||A more useful example
Section titled “A more useful example”Making a cow speak won’t add any additional value to your resume. A better use case for npx is gitignore which add a .gitignore file to your project, especially tailored for your type of project.
$ npx gitignoreNeed to install the following packages: gitignoreOk to proceed? (y)Usage: gitignore [PROJECT TYPE]Example: gitignore railsAvailable project types can be found by running `gitignore -types` or at https://github.com/github/gitignoreWe need to add a type run npx gitignore -types, visit the url or just follow our advice and run npx gitignore node for a typical node/web project.
$ npx gitignore nodeCreated .gitignore file for flag type node.And there you have it, a .gitignore file in your project.