2013-07-31 16 views
38

Nie zamierzam zadawać pytań, ale odpowiedzieć na jedno pytanie, ponieważ znalazłem tę radę nigdzie w sieci i właśnie to sobie wymyśliłem. Dobrze się dzielić, prawda?-bash: cordova: polecenie nie znalezione; lub -bash: phonegap: polecenie nie znaleziono


Więc w linii poleceń, zrobiłem to:

sudo npm install -g cordova 
sudo npm install -g phonegap 

które działało w porządku, ale kiedy pobiegł jeden z tych linii:

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

Mam te wiadomości:

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

Dlaczego? Okazało się, że uprawnienia do katalogu/usr/local/lib zostały ustawione na "everyone: No Access". Zmieniłem to na "everyone: Read only" i spróbowałem ponownie.

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

Tym razem zadziałały! Jako test wróciłem do "everyone: No Access", aby sprawdzić, czy to naprawdę problem. Tym razem mam różne komunikaty:

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

Wynik był taki sam, chociaż nie mogłem zadzwonić albo Cordova lub PhoneGap przez linię poleceń (jestem w tym te dwa ostatnie wiadomości o odmowach na wszelki wypadek ktoś wyszukuje na nich).

+0

próbowałaś moje rozwiązanie? –

+0

Jest to zdecydowanie najlepsza odpowiedź Natknąłem http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules – user2654569

+0

sprawdzić moją odpowiedź to działa – Prozi

Odpowiedz

0

Musisz dodać ścieżkę do bin cordova w pliku bash.

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

Spróbuj zamknąć i ponownie otworzyć ogranicznik po edycji pliku.

0

Pliki binarne po zainstalowaniu przez npm będą znajdować się w /usr/local/share/npm/bin. Możesz dodać tę ścieżkę do PATH swojego systemu, aby móc z nich korzystać

61

Jestem na Macu Mountain Lion. Po kilku próbach okazuje się, że rozwiązanie jest dość szybkie.

Przed zainstalowaniem Cordova, upewnij się, że jesteś właścicielem folderów, w których chcesz zainstalować. Otwórz terminal i wpisz:

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

Jeśli zainstalowano nową wersję pliku node.js, nadal może wystąpić błąd. Spróbuj usunąć npm cache:

sudo npm cache clear 
npm install -g cordova 

Następnie wpisz cordova i powodzenia;)

EDIT: to wydaje się działać na Maverick, Yosemite, El Capitan i Sierra oraz

+0

To nie działa dla mnie. – Deborah

+0

@DeborahSpeece możesz być bardziej szczegółowe? Być może instalujesz pliki w innym miejscu lub problem jest inny. Z jakiej wersji OSX korzystasz? –

+0

Korzystanie z Mac OSX Mavericks. Po wielu zgrywanie włosów, npm zainstalował cordova i phonegap dla lokalnego, nie globalnego użytkownika, nawet z -g i -gf. Nie udało mi się zainstalować żadnego użytkownika globalnego. – Deborah

11

Trzeba dodać "/ usr/local/share/npm/bin" do zmiennej $ PATH. Otwórz Line Terminal/polecenia i wpisz:

export PATH=$PATH:/usr/local/share/npm/bin 
+0

Polecam również dodanie ścieżki na stałe: http://blog.just2us.com/2011/05/setting-path-variable-in-mac-permanently/ – gardenofwine

+0

Pomógł mi również w błędzie "Błąd: ios-sim był nie znaleziono. Pobierz, zbuduj i zainstaluj wersję 1.7 lub nowszą ze strony https://github.com/phonegap/ios-sim na swojej ścieżce. Lub "npm install -g ios-sim" za pomocą node.js: http://nodejs.org/ ' –

0

Należy zaktualizować zmienne ścieżek ekologicznych, jeśli PhoneGap jest zainstalowany to należy go znaleźć w:

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

Jeżeli znalazłeś tę ścieżkę, a następnie dodaj ją do swoich ścieżek.

2

Muszę zadzwonić do komendy PhoneGap za pomocą nodejs tak ...

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

Kiedy uruchomić komendę Cordova bezpośrednio za pomocą

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

zwraca nic

9

Spójrz na swoich $Path zmiennych uruchamiając następujące polecenie w terminalu:

echo "$PATH" 

Jeśli nie widzisz to samo Cordova ścieżka próbuje zainstalować, trzeba ustalić lokalizację instalacji.

Run:

npm config get prefix 

Domyślna na OS X jest /usr/local, co oznacza, że ​​będzie podlinkowujemy npm binaria do/usr/local/bin, które powinny być już na swojej drodze. Jeśli masz inną ścieżkę, skonfiguruj npm, aby mieć katalog lokalny.

więc uruchomić to, aby zmienić /usr/local:

npm config set prefix /usr/local 

Że to zrobił tworzą mnie. Zasługa: npm global path prefix

+0

Pracowałem dla mnie! Dzięki ... przed, został skonfigurowany do: /usr/local/Cellar/node/5.3.0/libexec/npm –

0

Wszystko nie działał na mnie aż:

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

Dla mnie podczas instalacji węzła na OSX Yosemiti z Homebrew, pakiet Cordova nie powstawał w odpowiednim katalogu/usr/lokalizacja lokalna/lib. Musiałem jawnie skopiować folder cordova z moich pakietów .npm do miejsca, w którym powinien być zainstalowany z homebrew.

Następujące polecenie pracował dla mnie:

sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova 
1

W OSX:

Po zainstalowaniu NPM z wywaru, jeśli wciąż nie znaleziono polecenia, proponuję sprawdzić swoje ukryte ~/.npm- package/bin directory i sprawdź, czy w środku widzisz "cordova".Możesz to zrobić w następujący sposób:

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

Jeśli widzisz tam cordova, musisz się upewnić, że katalog znajduje się na twojej ścieżce. Jeśli używasz basha, musisz edytować plik ~/.bashrc za pomocą następujących opcji (alternatywnie, jeśli używasz programu zsh, edytuj następujący plik ~/.zshrc), dodając ten wiersz na końcu (zastępując EDIT_THIS_PUT_YOUR_USER_NAME_HERE z rzeczywista nazwa użytkownika):

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

Po obu źródeł plik po prostu edytować lub po prostu wyjść z terminala i otworzyć nowe. Aby pobrać plik tutaj, są instrukcje: Jeśli edytowałeś swój ~/.bashrc, po prostu wpisz "source ~/.bashrc", alternatywnie jeśli używasz zsh zamiast bash, a edytowałeś ~/.zshrc, po prostu wpisz "source ~/.zshrc" i jesteś gotowy. Powinieneś teraz móc wpisać "cordova" i zobaczyć prawidłowe wyjście na ekranie.

0

Dla użytkowników Ubuntu, znajduje się w ~/.npm-global/bin

dodając następującą linię w ~/.bashrc jest zamiar rozwiązać problem.

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

W moim przypadku problem był npm prefiks został ustawiony na inną ścieżkę i cmd nie był w stanie odebrać od niego.

I rozwiązany przy użyciu

npm config set prefix "/usr/local" 

przed próbą to widać teh rzeczywistego przedrostek używany przez KMP stosując następujące polecenie,

npm config get prefix