Borislav Hadzhiev
Tue Mar 08 2022·3 min read
Photo by Oleg Gratilo
Use npx
to solve the error "mocha: command not found", e.g. npx mocha
or
install the package globally by running npm install -g mocha
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 mocha npx mocha --version
If the error is not resolved, you can force the command to use the latest
version of mocha
.
npx mocha@latest npx mocha@latest --version
The commands above use the latest version of mocha.
Alternatively, you can install mocha globally or as a development dependency.
# 👇️ installs mocha globally (can run from any directory) npm install -g mocha # 👇️ installs mocha locally to the project (must be ran from root directory) npm install --save-dev mocha
The benefit of installing mocha
as a development dependency is that you can
control the version of the package in your package.json
file.
You can also create a test command in the scripts
object of your
package.json
file.
{ "scripts": { "test": "mocha" } }
Now you would run the command as npm run test
and not use mocha
directly.
mocha
fails, you might have to run the command prefixed with sudo
.# 👇️ if you get permissions error sudo npm install -g mocha mocha --version
You can link your project to the globally installed mocha
package, by opening
your terminal in your project's root directory (where your package.json
file
is) and running the npm link mocha
command.
npm link mocha
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
mocha
globally by running npm install -g mocha@latest
.
# 👇️ installs mocha globally (can run from any directory) npm install -g mocha # 👇️ installs mocha locally to the project (must be ran from root directory) npm install --save-dev mocha
mocha
fails, you might have to run the command prefixed with sudo
.# 👇️ if you get permissions error sudo npm install -g mocha mocha --version
Alternatively, you can see how you can fix the permissions error on this page in the official npm docs.