Liad Livnat
Liad Livnat

Reputation: 7475

Running karma after installation results in 'karma' is not recognized as an internal or external command

I'm trying to run karma as part as an angular-seed project, after installing karma using

npm install -g karma

I get:

'karma' is not recognized as an internal or external command, operable program or batch file.

when i'm trying to run test.bat from angular-client\scripts, the content of this file is:

set BASE_DIR=%~dp0

karma start "%BASE_DIR%..\config\karma.conf.js" %*

I also tried to navigate to "\AppData\Roaming\npm\node_modules\karma\bin" and saw karma file, when I'm trying to run it I get again:

'karma' is not recognized as an internal or external command, operable program or batch file.

Any suggestions? If not please suggest how to use jasmine without karma.

Thanks.

Upvotes: 110

Views: 58622

Answers (8)

ajaysinghdav10d
ajaysinghdav10d

Reputation: 1957

I had the same issue and fixed it by correcting my PATH environment variable.

STEP 1: go to the following path and ensure karma.cmd is present at the location given below

[Nodejs folder path]\node_modules\.bin <=> C:\Program Files\nodejs\node_modules\.bin

STEP 2: If present go to STEP 3, If not present run the following command npm install -g karma

STEP 3: Open environment variables and edit PATH

STEP 4: Add the following at the end :

[Nodejs folder path]\node_modules\.bin; <=> "C:\Program Files\nodejs\node_modules\.bin"

Log out your session and it will work for sure.

Upvotes: 6

user8082924
user8082924

Reputation: 11

I had same: 'karma' is not recognized as an internal or external command, operable program or batch file. problem when i tried to install it directly to my project file. When i used npm install -g karma-cli to global install everything worked just fine.

Upvotes: -1

Alexander Williamson
Alexander Williamson

Reputation: 411

On windows when you install a npm (non-globally - so without the -g flag), the executable commands are linked in the node_modules\.bin folder.

For example:

powershell> .\node_modules\.bin\karma start

powershell> .\node_modules\.bin\karma run

Upvotes: 8

Neha
Neha

Reputation: 190

'karma' is not recognized as an internal or external command, operable program or batch file.

If the above mentioned solution does not work, than The cause of issue is previous version of nodejs. So uninstall the previous version of nodejs and re-install the latest version. It will resolve your issue. As I faced the same and by doing above changes it worked for me.

Thanks.

Upvotes: 2

Maksood
Maksood

Reputation: 1200

Official documentation at https://karma-runner.github.io/0.12/intro/installation.html is confusing. It implies that npm install -g karma-cli is to install karma globally but it actually required for to run karma from command line.

Upvotes: 1

Lior Elrom
Lior Elrom

Reputation: 20852

karma-cli

It is recommended to install karma with its Command-Line-Interface (karma-cli) which will take care of fetching the appropriate karma. You can also install a different local version specific to each project you're working on and karma-cli will pick the appropriate one.

From the karma installation page:

Typing ./node_modules/karma/bin/karma start sucks so you might find it useful to install karma-cli globally:

npm install -g karma-cli

Now, check that karma was installed by typing:

which karma  //echo something like: /usr/local/bin/karma

and check that karma server is working (ctr+c to quit):

karma start 

You can also check that karma was installed by going to this directory:

cd /usr/local/lib/node_modules/karma

Good luck!

Upvotes: 18

MrCheese
MrCheese

Reputation: 3262

The command line interface is in a separate package.

To install this use:

npm install -g karma-cli

Upvotes: 324

Matthew Bakaitis
Matthew Bakaitis

Reputation: 11970

Based upon your directory using \AppData\Roaming, you're on Windows and this error is usually because the path to the npm globals isn't in the Windows PATH or NODE_PATH environment variables.

Use SET to check the values you are using for the paths and if your npm directory isn't listed, that will be the issue.

If you don't want npm to save to this directory, check the npm configuration options and the npm folders docs to see what you can change in this regard...

Upvotes: 4

Related Questions