Borislav Hadzhiev
Fri Mar 18 2022·3 min read
Photo by Jens Kreuter
Use npx
to solve the error "jest: command not found", e.g. npx jest
or
install the package globally by running npm install -g jest
to be able to use
the command without the npx
prefix.
The fastest way to solve the error is to use the npx
command.
npx jest npx jest --version
Alternatively, you can install jest globally or as a development dependency.
# 👇️ installs jest globally (can run from any directory) npm install -g jest # 👇️ (better) installs jest locally to the project (must be ran from root directory) npm install --save-dev jest
The benefit of installing jest
as a development dependency is that you can
control the version of the package in your package.json
file.
You can also create a script with your test command in the scripts
object of
your package.json
file.
{ "scripts": { "test": "jest" } }
Now you would run the command as npm run test
and not use jest
directly.
sudo
.# 👇️ if you got permissions error sudo npm install -g jest
You can link your project to the globally installed jest
package, by opening
your terminal in your project's root directory (where your package.json
file
is) and running the npm link jest
command.
npm link jest
The npm link command creates
a symbolic link from the globally installed package to the node_modules/
directory of the current folder.
If that doesn't help, run the following command:
npm config get prefix
The command will show you the path where npm
puts your globally installed
packages. The global packages will be in the bin
directory at the specified
path.
Look at the PATH environment variable on your operating system and add the
path that the npm config get prefix
command outputs, if it's not already
there.
If that didn't work, try to add the path to the bin
folder (from
npm config get prefix
) to your PATH environment variable and restart your
terminal.
For example, on macOS, you can update your path with the following command:
# make sure path matches with npm config get prefix export PATH=/usr/local/share/npm/bin:$PATH
And on Windows, the output of the npm config get prefix
command will look
something like: C:\Users\Your_User_Name\AppData\Roaming\npm
.
Edit the environment variable on your machine and add the specified path (replacing the placeholder with your username).
If you are on linux, you can add the output from the npm config get prefix
command to your .bashrc
file.
# 👇️ make sure to update the path with the output # from the command export PATH="/usr/local/share/npm/bin:$PATH"
If that doesn't help try to reinstall Node.js on your machine and then install
jest
globally by running npm install -g jest
.
# 👇️ installs jest globally (can run from any directory) npm install -g jest # 👇️ installs jest locally to the project (must be ran from root directory) npm install --save-dev jest
jest
fails, you might have to run the command prefixed with sudo
.# 👇️ if you got permissions error sudo npm install -g jest jest --version
Alternatively, you can see how you can fix the permissions error on this page in the official npm docs.