pais - cordova tutorial
-bash: cordova: comando no encontrado; o-bash: phonegap: comando no encontrado (14)
No voy a hacer una pregunta, pero respondo una, ya que hasta ahora no he encontrado ningún consejo en línea y me he dado cuenta de esto. Es bueno compartir, ¿verdad?
Entonces en la línea de comando, hice esto:
sudo npm install -g cordova
sudo npm install -g phonegap
Lo cual funcionó bien, pero cuando corrí cualquiera de estas líneas:
My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap
Recibí estos mensajes:
-bash: cordova: command not found
-bash: phonegap: command not found
¿Por qué? Resultó que los permisos en mi directorio / usr / local / lib se establecieron en "todos: sin acceso". Cambié eso a "todos: solo lectura" y lo intenté nuevamente.
My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap
Esta vez trabajaron! Como prueba, volví a "todos: sin acceso" para ver si realmente era el problema. Esta vez recibí mensajes diferentes:
-bash: /usr/local/bin/cordova: Permission denied
-bash: /usr/local/bin/phonegap: Permission denied
El resultado fue el mismo, sin embargo, no pude llamar ni cordova ni phonegap a través de la línea de comandos (incluyo estos dos últimos mensajes de denegación por si alguien los busca).
Acabo de hacer la misma pregunta con NPM y recientemente recibí una respuesta (el comando npm no se encuentra después de actualizar a Mac OSX 10.9.4 ), también podría aplicarlo aquí como lo hice. Prueba esto:
sudo -s ln -s /usr/local/lib/node_modules/phonegap/bin/phonegap.js /bin/usr/cordova
Funcionó para mí
Debe agregar el directorio "/ usr / local / share / npm / bin" a su variable $ PATH. Abra su terminal / línea de comando y escriba:
export PATH=$PATH:/usr/local/share/npm/bin
Debes actualizar tus rutas de variables ambientales, si phonegap está instalado entonces debes encontrarlo en:
/usr/local/lib/node_modules/phonegap/bin/
si encontraste este camino, agrégalo a tus rutas.
Debes agregar la ruta al bin cordova en el archivo bash.
/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)
Intenta cerrar y volver a abrir el terminal después de editar el archivo.
Eche un vistazo a las variables $Path
ejecutando lo siguiente en la terminal:
echo "$PATH"
Si no ve la misma ruta que cordova intenta instalar, debe reparar la ubicación de instalación.
Correr:
npm config get prefix
El valor predeterminado en OS X es /usr/local
, lo que significa que npm enlazará binarios en / usr / local / bin, que ya debería estar en su RUTA. Si tiene una ruta diferente, configure npm para tener el directorio local.
Entonces ejecute esto para cambiarlo a /usr/local
:
npm config set prefix /usr/local
Eso me formó. El crédito va a: npm prefijo de ruta global
En OSX:
Después de instalar npm con brew, si aún recibe el comando no encontrado, le sugiero que revise su directorio oculto ~ / .npm-packages / bin, y vea si ve ''cordova'' dentro. Puedes hacer esto de la siguiente manera:
ls ~/.npm-packages/bin | grep cordova
Si ve cordova allí, solo necesita asegurarse de que este directorio esté en su camino. Si está utilizando bash, asegúrese de editar ~ / .bashrc con lo siguiente (alternativamente, si está usando zsh, edite el siguiente archivo ~ / .zshrc) agregando esta línea al final (reemplazando a EDIT_THIS_PUT_YOUR_USER_NAME_HERE con su nombre de usuario real):
export PATH=$PATH:/Users/EDIT_THIS_PUT_YOUR_USER_NAME_HERE/.npm-packages/bin
Luego, o fuente el archivo que acaba de editar o simplemente salir de la terminal y abrir uno nuevo. Para obtener el archivo de origen aquí están las instrucciones: si editó su ~ / .bashrc, simplemente escriba ''source ~ / .bashrc'', alternativamente si está usando zsh en lugar de bash, y editó ~ / .zshrc, simplemente escriba ''source ~ / .zshrc'' y listo. Ahora debería poder escribir ''cordova'' y ver la salida correcta en la pantalla.
En mi caso, el problema era que el prefijo npm se había establecido en una ruta diferente y cmd no podía seleccionarlo.
Resolví el problema usando
npm config set prefix "/usr/local"
Antes de intentar esto, puede ver el prefijo real que usa npm con el siguiente comando:
npm config get prefix
Esto es muy básico, pero para mí el problema fue tratar de instalar cordova en la carpeta del proyecto, en lugar de hacerlo en la carpeta local. Solución fácil
Estoy en Mac Os Mountain Lion. Después de varios intentos, resulta que la solución es bastante rápida.
Antes de instalar Cordova, asegúrese de ser el propietario de las carpetas en las que va a instalar. Abra la terminal y escriba:
sudo chown -R $USER /usr/local
sudo chmod -R 0775 /usr/local
npm install -g cordova
Si instaló una nueva versión de node.js, aún podría obtener algún error. Intenta eliminar la memoria caché npm:
sudo npm cache clear
npm install -g cordova
Luego escribe cordova
y buena suerte;)
EDITAR: esto parece estar funcionando en Maverick, Yosemite, El Capitán y Sierra también
Los archivos binarios después de ser instalados por npm
se npm
en /usr/local/share/npm/bin
. Siéntase libre de agregar esa ruta a la RUTA de su sistema para usarlos
Para mí, al instalar el nodo en un OSX Yosemiti con Homebrew, el paquete Cordova no se creó en la ubicación / usr / local / lib correspondiente. Tuve que copiar explícitamente la carpeta cordova de mis paquetes .npm a donde debería haber sido instalado con homebrew.
El siguiente comando funcionó para mí:
sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova
Para usuarios de Ubuntu, se encuentra en ~/.npm-global/bin
Agregar la siguiente línea en ~/.bashrc
va a solucionar el problema.
export PATH=${PATH}:~/.npm-global/bin
Tengo que llamar al comando phonegap usando nodejs como este ...
nodejs /usr/local/lib/node_modules/phonegap/bin/phonegap.js create my-app
Cuando ejecuto el comando cordova directamente usando
/usr/local/lib/node_modules/cordova/bin/cordova
no devuelve nada
Todo no funcionó para mí hasta el momento:
sudo rm -R /usr/local/lib/node_modules/cordova
npm install -g cordova