no se encuentra el comando bower


158

Traté de instalar Twitter Bower en mi Mac, y usé

npm install bower -g

Luego lo intenté bower --help, y la salida fue bower command not found. ¿Porqué es eso?


2
¿De qué es la salida npm install? ¿Falló? ¿Instaló Bower en algún lugar que no esté en su PATH?
jches


Respuestas:


365

Al igual que en esta pregunta ( prefijo de ruta global npm ), todo lo que necesita es establecer correctamentenpm prefix .

UNIX:

$ npm config set prefix /usr/local
$ npm install -g bower

$ which bower
>> /usr/local/bin/bower

Windows y NVM:

$ npm config set prefix /c/Users/xxxxxxx/AppData/Roaming/nvm/v8.9.2
$ npm install -g bower

Entonces bowerdebe ubicarse justo en su $PATH.


1
Me gustaría agregar que esta no es la respuesta más correcta si trabaja con múltiples proyectos. Bower debe instalarse node_moduleslocalmente package.jsony no globalmente, ya que diferentes proyectos pueden usar diferentes versiones (de eso se trata npm). El verdadero problema es que el sistema no puede encontrar el ejecutable local de Bower.
Bruno Finger

@BrunoFinger: Al instalar Bower a alcance global, esa respuesta no está resolviendo el problema. Sin embargo, el uso de paquetes de nodos locales podría ser una mejor manera de lidiar con herramientas específicas del proyecto.
Petr Joachim

Creo que si el prefijo npm se establece en / usr / local, npm install -g fallará sin sudo.
imafish

No recomendamos usar Bower para nuevos proyectos. Por favor considere hilo y paquete web o paquete.
Daniel

60

Estoy casi seguro de que en realidad no lo está instalando correctamente. Como está intentando instalarlo globalmente, deberá ejecutarlo con sudo:

sudo npm install -g bower

3
Así es como debe instalarse Bower, de lo contrario, solo se instalará en la carpeta donde ejecutó el comando. -g significa global y también crea los enlaces necesarios para los módulos que se pueden ejecutar como comandos del sistema, bower, grunt-cli, incluso npm son ejemplos claros de esto.
Erick Ruiz de Chavez

¡No instales con sudo! ¡Solo use brew doctor y haga las correcciones que brew doctor sugiere y luego no necesitará usar sudo!
djangofan

4

Esto resultó NO ser un problema de la glorieta, aunque se me apareció con la glorieta.

Parece ser un problema de nodo, que. Si hay un archivo en la ruta, pero tiene el bit setuid / setgid establecido, que no lo encontrará.

Aquí hay un archivo con el conjunto de bits s: (unix 'which' lo encontrará sin problemas).

ls -al / usr / local / bin -rwxrwsr-- 110 nmt raíz 5535636 17 de julio de 2012 git

Aquí hay un intento de nodo:

> which.sync('git')
Error: not found: git

Cambio los permisos (chomd 755 git). Ahora nodo, que puede encontrarlo.

> which.sync('git')
'/usr/local/bin/git'

Espero que esto ayude.


3

Estoy usando el administrador de versiones de nodo. Recibía este mensaje de error porque había cambiado a una versión diferente del nodo. Cuando volví a la versión del nodo donde instalé bower, este error desapareció. En mi caso, el comando fuenvm use stable


3

Alternativamente, puede usar el npxque viene junto con el npm> 5.6.

npx bower install


1
Esta debería ser la respuesta aceptada. Nunca debería instalar módulos globales con npm.
chovy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.