Npm sabe que grunt se instala globalmente, entonces, ¿por qué no se encuentra?

$ npm install -g grunt
... installs ...
$ npm list -g | grep grunt
│   ├─┬ gruntfile-editor@0.2.0
│   ├─┬ gruntfile-editor@0.2.0
├─┬ grunt@0.4.5
│ ├─┬ grunt-legacy-log@0.1.1
│ ├── grunt-legacy-util@0.2.0
$ grunt
-bash: grunt: command not found

Asumo porque lo puso en algún lugar que no está en mi RUTA.

¿Por qué npm no lo pone en algún lugar que esté en mi RUTA de forma predeterminada, como /usr/local/bin?

ACTUALIZACIÓN: Extrañamente, obtengo el mismo error grunt: command not found incluso después de hacer npm install grunt para ejecutarlo localmente. ¿Qué estoy haciendo mal? Hay un Gruntfile.js en mi repositorio.

3
Richard 12 feb. 2015 a las 17:23

2 respuestas

La mejor respuesta

El paquete "grunt" es el ejecutor de tareas en sí, mientras que el paquete "grunt-cli" es la interfaz de línea de comandos que incluye el ejecutable grunt. Puede asegurarse de que esté instalado en la ruta correcta.

Si lo hace npm install grunt-cli todavía no funcionaría porque se instalaría en node_modules en el directorio correspondiente que probablemente no esté en su ruta. Sin embargo, cuando use grunt de la herramienta CLI instalada globalmente, buscará una instalación de grunt que sea local para ese proyecto, así como la Gruntfile.js

Lo que tienes que hacer es

  1. instalar grunt-cli globalmente:

    $ npm instalar grunt-cli -g

  2. instale grunt local en sus dependencias (opcionalmente, guarde la dependencia en su package.json):

    $ npm install grunt --save

8
hereandnow78 12 feb. 2015 a las 16:14

Para mí, faltaba otra cosa, agregar la ruta a la carpeta NPM en las variables env de Windows

  • Vaya a Sistema (Mi computadora-> Propiedades)
  • Configuración avanzada del sistema
  • En la pestaña Avanzado, 'Variables de entorno'
  • En Variables de usuario, elija Ruta, luego Editar
  • Agregue esto junto con los otros que tiene: '% USERPROFILE% \ AppData \ Roaming \ npm'

Espero que esto ayude, suerte

1
Ben Haran 21 mar. 2018 a las 10:05