el comando karma no se encuentra cuando karma ya está instalado


Usé nodo.js para instalar karma. Mi primer intento falló al ejecutar el siguiente comando en la Terminal:

npm install -g karma

Eso falló así que decidí usar:

sudo npm install -g karma

Después de introducir mi contraseña parecía instalar correctamente. Estoy pegando parte de la salida de la instalación, tal vez significará algo para alguien y será relevante para mi pregunta. Después de todos los mensajes http npm esto es lo que veo:

> [email protected] install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  SOLINK_MODULE(target) Release/bufferutil.node: Finished
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
  SOLINK_MODULE(target) Release/validation.node: Finished
/usr/local/share/npm/bin/karma -> /usr/local/share/npm/lib/node_modules/karma/bin/karma
[email protected] /usr/local/share/npm/lib/node_modules/karma
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

Entonces cuando intento ejecutar el siguiente comando para crear un archivo de configuración de karma con este comando:

karma init karma.config.js

Este es el mensaje que se devuelve:

-bash: karma: command not found

He probado el mismo comando con sudo antes, pero obtengo el mismo resultado.

¿alguien tiene alguna idea de lo que está pasando? Cualquier ayuda es apreciada.

*Actualización! Decidí revisar un archivo llamado: builderror.registro ubicado en: /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws

Esto es lo que muestra:

gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/eperez/.node-gyp/0.10.5"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/.node-gyp"
gyp http GET http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
Author: iChido, 2013-07-17

9 answers

@mayankcpdixit dio la respuesta allí en una respuesta a la pregunta original de la OP, pero lo pondré aquí de nuevo en caso de que alguien lo pierda.

No es necesario desinstalar todo, y si tuviera que agregar manualmente un nuevo enlace de ruta para cada paquete npm que intento instalar, probablemente me dispararía a mí mismo.

npm install -g karma-cli

Boom. Ahora tienes instaladas las líneas de comando karma. Igual que Grunt.


Editar: Por favor, no te olvides de votar @mayankcpdixit también, él comentó directamente en el post original, pero en realidad no "respondió" a la pregunta.

 241
Author: Kirkland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:06

En su ~/.bash_profile (o similar) modifique su PATH para incluir binarios instalados en npm:

export PATH="$PATH:/usr/local/share/npm/bin"

Tuve este mismo problema, y encontré que esta solución consume menos tiempo y tiene menos impacto que la reinstalación completa de node.

EDITAR esto también ha funcionado para otros en bash_profile

export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" 
 37
Author: Marty Cortez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-27 17:34:35

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.

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

Escribiendo ./node_modules / karma / bin / karma start apesta, por lo que puede que le resulte útil instalar karma-cli a nivel mundial:

npm install -g karma-cli

Ahora, compruebe que karma fue instalado escribiendo:

karma start

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

cd /usr/local/lib/node_modules/karma

¡Buena suerte!

 14
Author: Lior Elrom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-05 02:27:28

No es necesario desinstalar completamente el nodo.js

Solo

sudo rm -rf /usr/local/lib/node_modules/npm/

Entonces
instalar nodo.js

Entonces
reinstalar karma

Esto funcionó para mí.

 2
Author: vusan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-22 09:29:23

Tuve que añadir export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin después de instalar karma con sudo npm install karma.

Espero que esto ayude.

 2
Author: Ralph Delzepich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-22 15:01:30

Simplemente vaya a test.sh:

Buscar: $BASE_DIR/../node_modules/karma/bin/karma start $BASE_DIR/../config/karma.conf.js $*

Sustitúyase por: /usr/local/bin/karma start $BASE_DIR/../config/karma.conf.js $*

O: karma start $BASE_DIR/../config/karma.conf.js $*

 1
Author: Tiago Ferreira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-06 14:48:17

Yo también estaba enfrentando el mismo problema. Parece que karma for command line es un paquete separado que puede ser instalado por

npm install -g karma-cli

 1
Author: skjoshi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-22 11:26:12

Al actualizar de Karma 0.10 a 0.12 se elimina el enlace al ejecutable karma.

Puedes recuperarlo con

cd node_modules/.bin
ln -s ../karma/bin/karma karma
 0
Author: OnnoH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-18 10:17:46

Intente reinstalar el nodo.js. Hay muchas formas de instalarlo, pero recomiendo descargarlo desde nodejs.org

Si eso no funciona, puedes intentar reinstalar karma.

 -21
Author: dob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-17 20:08:50