Reputation: 7475
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
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
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
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
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
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
Reputation: 20852
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
Reputation: 3262
The command line interface is in a separate package.
To install this use:
npm install -g karma-cli
Upvotes: 324
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