web-dev-qa-db-fra.com

-bash: cordova: commande introuvable; ou -bash: phonegap: commande introuvable

Je ne vais pas poser de question, mais répondez-y à une question, car je n'ai trouvé aucun conseil en ligne à ce jour et je viens de le comprendre moi-même. C'est bien de partager, non?


Donc sur la ligne de commande, j'ai fait ceci:

Sudo npm install -g cordova
Sudo npm install -g phonegap

Ce qui a bien fonctionné, mais quand j'ai ensuite exécuté l'une de ces lignes:

My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap

J'ai eu ces messages:

-bash: cordova: command not found
-bash: phonegap: command not found

Pourquoi? Il s'est avéré que les autorisations sur mon répertoire/usr/local/lib ont été définies sur "Tout le monde: pas d'accès". J'ai changé cela en "tout le monde: Lecture seule" et j'ai réessayé.

My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap

Cette fois ils ont travaillé! En guise de test, je l'ai renvoyé à "Tout le monde: pas d'accès" pour voir si c'était vraiment le problème. Cette fois, j'ai eu différents messages:

-bash: /usr/local/bin/cordova: Permission denied
-bash: /usr/local/bin/phonegap: Permission denied

Le résultat était le même, cependant, je ne pouvais appeler ni cordova ni phonegap via la ligne de commande (j'inclus ces deux derniers messages de refus au cas où quelqu'un les chercherait).

41
richtextformat

Je suis sur Mac Os Mountain Lion. Après plusieurs tentatives, la solution s'avère assez rapide.

Avant d’installer Cordova, assurez-vous que vous êtes le propriétaire des dossiers dans lesquels il va installer. Terminal ouvert et tapez:

Sudo chown -R $USER /usr/local
Sudo chmod -R 0775 /usr/local
npm install -g cordova

Si vous avez installé une nouvelle version de node.js, vous pouvez toujours obtenir une erreur. Essayez de supprimer le cache npm:

Sudo npm cache clear
npm install -g cordova

Puis tapez cordova et bonne chance;)

EDIT: cela semble fonctionner aussi bien sur Maverick, Yosemite, El Capitan et Sierra

63

Examinez vos variables $Path en lançant ce qui suit dans le terminal:

echo "$PATH" 

Si vous ne voyez pas le même chemin que Cordova tente d’installer, vous devez corriger l’emplacement d’installation.

Courir:

 npm config get prefix

La valeur par défaut sous OS X est /usr/local, ce qui signifie que npm va créer un lien symbolique entre les fichiers binaires et/usr/local/bin, qui devraient déjà figurer sur votre PATH. Si vous avez un autre chemin, configurez npm pour avoir le répertoire local.

Alors lancez ceci pour le changer en /usr/local:

 npm config set prefix /usr/local

Cela m'a formé. Le crédit va à: npm préfixe de chemin global

13
Matthew Redmond

Vous devez ajouter le répertoire "/ usr/local/share/npm/bin" à votre variable $ PATH . Ouvrez votre ligne de commande/terminal et entrez:

export PATH=$PATH:/usr/local/share/npm/bin
11
itamaryu

Je dois appeler la commande phonegap en utilisant nodejs comme ceci ...

nodejs /usr/local/lib/node_modules/phonegap/bin/phonegap.js create my-app

Quand je lance la commande cordova directement en utilisant

/usr/local/lib/node_modules/cordova/bin/cordova

ça ne retourne rien

2
nathanengineer

Pour les utilisateurs Ubuntu, il se trouve à ~/.npm-global/bin

Ajouter la ligne suivante dans ~/.bashrc va résoudre le problème.

export PATH=${PATH}:~/.npm-global/bin
2
TakaSoft

Sous OSX:

Après avoir installé npm avec brew, si vous obtenez toujours une commande introuvable, je vous suggère de vérifier votre répertoire caché ~/.npm-packages/bin et de voir si vous voyez «cordova» à l'intérieur. Vous pouvez le faire de la manière suivante:

ls ~/.npm-packages/bin | grep cordova

Si vous voyez cordova à cet endroit, il vous suffit de vous assurer que ce répertoire se trouve dans votre chemin. Si vous utilisez bash, veillez à éditer votre ~/.bashrc comme suit (alternative, si vous utilisez zsh, éditez le fichier suivant ~/.zshrc) en ajoutant cette ligne à la fin (en remplaçant EDIT_THIS_PUT_YOUR_USER_NAME_HERE par votre nom d'utilisateur actuel):

export PATH=$PATH:/Users/EDIT_THIS_PUT_YOUR_USER_NAME_HERE/.npm-packages/bin

Ensuite, sourcez le fichier que vous venez de modifier ou quittez simplement le terminal et ouvrez-en un nouveau. Pour obtenir le fichier, voici les instructions: Si vous avez modifié votre fichier ~/.bashrc, saisissez simplement 'source ~/.bashrc', ou si vous utilisez zsh au lieu de bash et que vous avez modifié ~/.zshrc, tapez simplement 'source ~/.zshrc' et vous êtes prêt à partir. Vous devriez maintenant pouvoir taper 'cordova' et voir la sortie correcte à l'écran.

2
Andres

Je viens de poser la même question à NPM et j'ai récemment obtenu une réponse ( commande npm introuvable après la mise à jour vers Mac OSX 10.9.4 ), vous pouvez également l'appliquer ici comme je l'ai fait. Essaye ça:

Sudo -s ln -s /usr/local/lib/node_modules/phonegap/bin/phonegap.js /bin/usr/cordova

Cela a fonctionné pour moi.

1
clintgh

Vous pouvez exécuter cordova sans configuration de paquet facilement. Ajoutez simplement npx devant toute commande à exécuter. Ex:

npx cordova create myApp org.Apache.cordova.myApp myApp
npx cordova platform add browser
0
user1079877

Vous devez ajouter le chemin d'accès à la corbeille Cordova dans le fichier bash.

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

Essayez de fermer et de rouvrir le terminal après avoir modifié le fichier.

0
Lwyrn

Cela m'est arrivé aussi. Heureusement, nous avons trouvé cet excellent article: http://blog.webbb.be/command-not-found-node-npm/

Je vais résumer ici. Cela peut se produire lorsque npm est en train d'installer à un emplacement qui n'est pas standard et qui n'est pas dans votre chemin.

Pour vérifier où npm installe, exécutez: npm root -g

Il DEVRAIT dire /usr/local/lib/node_modules

Mine dit /Users/myusername/.npm-packages/lib/node_modules

Pour le placer au bon endroit: 

  • lancer: npm config set prefix /usr/local

  • Ensuite, réinstallez votre ou vos paquet (s) npm avec -g: npm install -g cordova etc.

0
Ira Herman

Pour moi, lors de l’installation du noeud sur un OS X Yosemiti avec Homebrew, le paquet Cordova n’était pas créé à l’emplacement/usr/local/lib approprié. Je devais copier explicitement le dossier cordova de mes .npm-packages vers où il aurait dû être installé avec homebrew.

La commande suivante a fonctionné pour moi:

Sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova
0
SBerg413

Tout n'a pas fonctionné pour moi jusqu'à ce que:

Sudo rm -R /usr/local/lib/node_modules/cordova
npm install -g cordova
0
Prozi

Vous devriez mettre à jour vos chemins de variables d’environnement, Si phonegap est installé, vous devriez le trouver dans:

/usr/local/lib/node_modules/phonegap/bin/

si vous avez trouvé ce chemin, ajoutez-le à vos chemins.

0
Hazem Hagrass

Les fichiers binaires après avoir été installés par npm seront situés dans /usr/local/share/npm/bin. N'hésitez pas à ajouter ce chemin au chemin PATH de votre système pour pouvoir les utiliser 

0
Thai Tran

Ceci est très basique, mais pour moi le problème était d’essayer d’installer Cordova dans le dossier du projet plutôt que dans le dossier local. Solution facile.

0
Zeesy

Dans mon cas, le problème était que le préfixe npm était défini sur un chemin différent et que cmd n’était pas en mesure de le sélectionner.

J'ai résolu le problème en utilisant

npm config set prefix "/usr/local"

Avant d’essayer, vous pouvez voir le préfixe utilisé par npm à l’aide de la commande suivante,

npm config get prefix 
0
ChandrasekarG