Ejecutar karma después de la instalación da como resultado 'karma' no se reconoce como un comando interno o externo

108

Estoy tratando de ejecutar karma como parte de un proyecto de semilla angular , después de instalar karma usando

npm install -g karma

Yo obtengo:

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

cuando intento ejecutar test.bat desde angular-client \ scripts, el contenido de este archivo es:

establecer BASE_DIR =% ~ dp0

inicio de karma "% BASE_DIR% .. \ config \ karma.conf.js"% *

También intenté navegar a "\ AppData \ Roaming \ npm \ node_modules \ karma \ bin" y vi el archivo karma, cuando intento ejecutarlo, obtengo de nuevo:

'karma' no se reconoce como un comando interno o externo, programa operable o archivo por lotes.

¿Alguna sugerencia? Si no es así, sugiera cómo usar jazmín sin karma.

Gracias.

Liad Livnat
fuente
2
Pruebanpm install karma -g
Siva Tumma
@lior karma es sinónimo de karma-runner, por lo que se asignó automáticamente cuando lo editó.
Flexo
@Flexo, gracias. No lo sabía, sin embargo, creo que también debe ser específico de la etiqueta, como html incluirá html5 (¿tal vez?) O incluso html5-canvas
Lior Elrom

Respuestas:

319

La interfaz de la línea de comandos está en un paquete separado.

Para instalar este uso:

npm install -g karma-cli

MrCheese
fuente
17
Hombre, realmente no mantienen estos documentos actualizados: / karma-runner.github.io/0.8/intro/installation.html (como 3 años después de esta respuesta, los documentos dicen npm install -g karma && karma startque no funciona).
Deja de difamar a Monica Cellio
2
Los documentos de @sequoiamcdowell para Karma están versionados, no verá ninguna actualización para la versión anterior. Consulte los documentos de la última versión karma-runner.github.io/0.12/intro/installation.html
pkozlowski.opensource
asegúrese de ejecutar esto como administrador
Jerry
1
No puedo creer que esto se escape por las grietas
Cody
Pasé al menos una hora buscando una solución. Pensé que era un problema de .net framework. Esta solución funcionará incluso cuando vea el error .net framework: "MSBUILD: error MSB3428: No se pudo cargar el componente de Visual C ++" VCBuild.exe ". Para solucionar este problema, 1) instale .NET Framew ork 2.0 SDK, 2) instale Microsoft Visual Studio 2005 o 3) agregue la ubicación del componente a la ruta del sistema si está instalado en otro lugar ". Afortunadamente encontré tu solución y he conseguido que se cargue el karma. ¡Gracias!
ThinkBonobo
17

karma-cli

Se recomienda instalar karma con su interfaz de línea de comandos ( karma-cli ) que se encargará de obtener el karma apropiado. También puede instalar una versión local diferente específica para cada proyecto en el que está trabajando y karma-cli elegirá la adecuada.

Desde la página de instalación de karma :

Escribir ./node_modules/karma/bin/karma start apesta, por lo que puede resultarle útil instalar karma-cli globalmente:

npm install -g karma-cli

Ahora, verifique que karma se instaló escribiendo:

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

y verifique que el servidor karma esté funcionando (ctr + c para salir):

karma start 

También puede verificar que karma se instaló yendo a este directorio:

cd /usr/local/lib/node_modules/karma

¡Buena suerte!

Lior Elrom
fuente
7

En Windows, cuando instala un npm (no globalmente, es decir, sin la -gbandera), los comandos ejecutables están vinculados en la node_modules\.bincarpeta.

Por ejemplo:

powershell> .\node_modules\.bin\karma start

powershell> .\node_modules\.bin\karma run

Alexander Williamson
fuente
Estaba obteniendo errores adicionales basados ​​en permisos al hacerlo de esta manera, así que tuve que ejecutar el archivo cmd real .\node_modules\.bin\karma.cmd starty eso funcionó para mí
Nick Tallents
6

Tuve el mismo problema y lo solucioné corrigiendo mi variable de entorno PATH.

PASO 1: vaya a la siguiente ruta y asegúrese de que karma.cmd esté presente en la ubicación que se indica a continuación

[Ruta de la carpeta Nodejs] \ node_modules \ .bin <=> C: \ Archivos de programa \ nodejs \ node_modules \ .bin

PASO 2: Si está presente, vaya al PASO 3, si no está presente, ejecute el siguiente comando npm install -g karma

PASO 3: Abra las variables de entorno y edite la RUTA

PASO 4: Agregue lo siguiente al final:

[Ruta de la carpeta Nodejs] \ node_modules \ .bin; <=> "C: \ Archivos de programa \ nodejs \ node_modules \ .bin"

Cierre la sesión y seguro que funcionará.

ajaysinghdav10d
fuente
4

Según el uso de su directorio \AppData\Roaming, está en Windows y este error generalmente se debe a que la ruta a los globales npm no está en las variables de entorno PATHo de Windows NODE_PATH.

Úselo SETpara verificar los valores que está usando para las rutas y si su directorio npm no está en la lista, ese será el problema.

Si no desea que npm se guarde en este directorio, verifique las opciones de configuración de npm y los documentos de las carpetas npm para ver qué puede cambiar al respecto ...

Matthew Bakaitis
fuente
Ya intenté agregar el npm a la ruta usando el siguiente comando "set PATH =" C: \ Users \ Liad \ AppData \ Roaming \ npm;% PATH% ", bueno, todavía nada, ¿puedes decirme dónde está la ubicación exacta de su archivo de ejecución de karma?
Liad Livnat
En mi sistema Windows, tengo npm configurado para usar C:\npm. Algunas de las cosas de Windows que hago son en XP, que tiene problemas de longitud de ruta, así que quería mantener la ruta total lo más corta posible. Si está en XP, eso puede ser un factor contribuyente ... y tal vez también en versiones más recientes de Windows (???).
Matthew Bakaitis
2

'karma' no se reconoce como un comando interno o externo, programa operable o archivo por lotes.

Si la solución mencionada anteriormente no funciona, la causa del problema es la versión anterior de nodejs. Así que desinstale la versión anterior de nodejs y vuelva a instalar la última versión. Resolverá tu problema. Como me enfrenté a lo mismo y haciendo los cambios anteriores, funcionó para mí.

Gracias.

Neha
fuente
-1

Tuve el mismo: 'karma' is not recognized as an internal or external command, operable program or batch file.problema cuando intenté instalarlo directamente en mi archivo de proyecto. Cuando solía npm install -g karma-clirealizar una instalación global, todo funcionaba bien.

usuario8082924
fuente