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).
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
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
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
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
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
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.
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.
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
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.
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.
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
Tout n'a pas fonctionné pour moi jusqu'à ce que:
Sudo rm -R /usr/local/lib/node_modules/cordova
npm install -g cordova
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.
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
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.
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