NPM - Manages packages but doesn't make life easy executing any.
NPX - A tool for executing Node packages.
NPX comes bundled with
NPM by itself does not simply run any package. It doesn't run any package as a matter of fact. If you want to run a package using NPM, you must specify that package in your
When executables are installed via NPM packages, NPM links to them:
- local installs have "links" created at
- global installs have "links" created from the global
bin/ directory (e.g.
/usr/local/bin) on Linux or at
%AppData%/npm on Windows.
Documentation you should read
One might install a package locally on a certain project:
npm install some-package
Now let's say you want NodeJS to execute that package from the command line:
The above will fail. Only globally installed packages can be executed by typing their name only.
To fix this, and have it run, you must type the local path:
You can technically run a locally installed package by editing your
packages.json file and adding that package in the
Then run the script using
npm run-script (or
npm run some-package
npx will check whether
<command> exists in
$PATH, or in the local project binaries, and execute it. So, for the above example, if you wish to execute the locally-installed package
some-package all you need to do is type:
Another major advantage of
npx is the ability to execute a package which wasn't previously installed:
$ npx create-react-app my-app
The above example will generate a
react app boilerplate within the path the command had run in, and ensures that you always use the latest version of a generator or build tool without having to upgrade each time you’re about to use it.
npx command may be helpful in the
script section of a
when it is unwanted to define a dependency which might not be commonly used or any other reason:
"start": "npx firstname.lastname@example.org",
"serve": "npx http-server"
npm run serve
- How to use package installed locally in node_modules?
- NPM: how to source ./node_modules/.bin folder?
- How do you run a js file using npm scripts?