node.js - node - Paquete de nodo(Grunt) instalado pero no disponible
npm last version (10)
Estoy intentando construir una biblioteca github jquery-ui usando grunt
, pero después de ejecutar npm install
, todavía no puedo ejecutar el comando de acuerdo con el archivo readme . Simplemente da No command ''grunt'' found
:
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command ''grunt'' found, did you mean:
Command ''grun'' from package ''grun'' (universe)
grunt: command not found
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
[email protected] /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ [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]
├─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
└── [email protected]
Estoy confundido, ¿qué me estoy perdiendo por favor?
Agregue /usr/local/share/npm/bin/
a su $PATH
Algunas veces tienes que npm install package_name -g
para que funcione.
En WIN7 tuve que agregar manualmente la ruta a la carpeta npm (que contiene el elusivo archivo ''grunt'') a la variable de entorno Windows PATH. En mi caso, eso fue C: / Users / mhaagsma / AppData / Roaming / npm
En Windows, parte del misterio parece ser que npm instala el archivo Grunt.cmd. Mientras estaba en mi caja Linux, solo tenía que ejecutar sudo npm install -g grunt-cli, en mi computadora portátil con Windows 8, Grunt se colocó en el directorio ''.npm-global'':% USER_HOME% /. Npm-global y yo Tuve que agregar eso al Camino.
Entonces en Windows mis pasos fueron:
npm install -g grunt-cli
averiguar dónde diablos estaba grunt.cmd (creo que para algunos es en% USER_HOME% / App_Data / Roaming)
Agregué la ubicación a mi variable de entorno Path. Abrió un nuevo símbolo del sistema cmd y el comando rondar funcionó bien.
En mi caso, necesito modificar el archivo / usr / local / bin / grunt en la línea 1 (no lo hagas):
#!/usr/bin/env node //remove this line
#!/usr/bin/env nodejs // and put this line to run with nodejs
Editado:
Para evitar problemas, creé un enlace con el nombre de "nodo" porque muchos otros programas todavía usan el comando "nodo".
sudo ln -s /usr/bin/nodejs /usr/sbin/node
Hay una forma más de ejecutar ronco en Windows, sin agregar nada globalmente. Este es un caso en el que no tiene que hacer nada con% PATH%
si tiene instalado grunt y grunt-cli (sin el modificador -g). Ya sea por:
npm install grunt-cli
npm install [email protected]
O al tener eso en su archivo packages.json como:
"devDependencies": {
"grunt-cli": "^1.2.0",
"grunt": "^0.4.5",
Puede llamar a grunt desde su instalación local de la siguiente manera:
node node_modules/grunt-cli/bin/grunt --version
Esta es una solución para aquellos que, por alguna razón, no quieren o no pueden jugar con PATH, o tienen algo más que lo estropea todo el tiempo, por ejemplo en un agente de desarrollo.
Editar: Se agregaron versiones ya que el grunt-cli funciona con gruñido> 0.3
La forma correcta de instalar grunt es ejecutando este comando:
npm install grunt -g
(Anote "sudo" al comando de arriba si recibe un mensaje de error de EACCESS)
-g hará que npm instale el paquete globalmente, por lo que podrá usarlo siempre que lo desee en su máquina actual.
Las herramientas de línea de comandos no están incluidas con la versión más reciente de Grunt (0.4 al momento de escribir), sino que debe instalarlas por separado.
Esta es una buena idea, ya que significa que puede tener versiones diferentes de Grunt ejecutándose en diferentes proyectos, pero aún así usar el buen comando conciso grunt
para ejecutarlos.
Entonces, primero instale las herramientas grunt cli globalmente:
npm install -g grunt-cli
(o posiblemente sudo npm install -g grunt-cli
).
Puede establecer que está funcionando escribiendo grunt --version
Ahora puede instalar la versión actual de Grunt local para su proyecto. Entonces, desde la ubicación de su proyecto ...
npm install grunt --save-dev
El modificador save-dev
no es estrictamente necesario, pero es una buena idea porque marcará ronco en su sección package.json devDependencies como un módulo de solo desarrollo.
Otra solución es eliminar el bundler ubuntu en mi caso que utilicé:
sudo apt-get remove ruby-bundler
Eso funcionó para mí.
Si usted ha instalado el paquete Grunt ejecutando npm install -g grunt
y aún dice '' No command ''grunt'' found
o grunt: command not found
, una manera rápida y sucia de hacerlo funcionar es vincular los binarios de nodo a su $ PATH manualmente.
En MacOSX / Linux puede agregar esta línea a su archivo ~/.bash_profile
o ~/.bashrc
.
PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries
Probablemente deba reemplazar /usr/local/Cellar/node/HEAD/bin
por la ruta donde se encuentran los binarios de su nodo.
Si esto es rápido y sucio para mí, es porque todo debería funcionar sin hacerlo, pero por un motivo desconocido, un enlace parece estar roto. Como nadie en el IRC podría decirme por qué sucedió esto, encontré mi propia forma de hacerlo funcionar (ronco).
PD: Esto debería ayudarte a hacer trabajos de gruñidos, esta respuesta no está relacionada con jquery-ui.
Actualización 02/2013 : Debería echarle un vistazo a la respuesta de @ tom-p, que explica mejor lo que está sucediendo. Tom nos da la solución real en lugar de piratear su archivo bashrc: ambos deberían funcionar, pero primero debería intentar instalar grunt-cli
.