2013-07-31 31 views
38

Non ho intenzione di fare una domanda, ma di rispondere ad una, poiché ho trovato questo consiglio da nessuna parte online finora e l'ho appena capito da solo. È bello condividere, giusto?-bash: cordova: comando non trovato; o -bash: phonegap: comando non trovato


Così sulla linea di comando, ho fatto questo:

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

che funzionava bene, ma quando poi corse una di queste linee:

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

ho avuto questi messaggi:

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

Perché? Si è scoperto che le autorizzazioni sulla mia directory/usr/local/lib erano impostate su "tutti: nessun accesso". L'ho cambiato in "tutti: sola lettura" e ho provato di nuovo.

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

Questa volta hanno lavorato! Come test l'ho restituito a "tutti: nessun accesso" per vedere se era davvero il problema. Questa volta ho avuto diversi messaggi:

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

Il risultato è stato lo stesso, però, non ho potuto chiamare sia Cordova o PhoneGap attraverso la linea di comando (sto compresi questi ultimi due messaggi di divieto nel caso in cui qualcuno ricerche su di essi).

+0

Hai provato la mia soluzione? –

+0

Questo è di gran lunga la migliore risposta che ho incontrato http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules – user2654569

+0

leggi la mia risposta funziona solo – Prozi

risposta

0

È necessario aggiungere il percorso al raccoglitore cordova nel file bash.

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

Provare a chiudere e riaprire il teminale dopo aver modificato il file.

0

I file binari dopo l'installazione da npm si troveranno in /usr/local/share/npm/bin. Sentiti libero di aggiungere quel percorso al PERCORSO del tuo sistema per usarli

61

Sono su Mac Os Mountain Lion. Dopo diversi tentativi, la soluzione è abbastanza veloce.

Prima di installare Cordova, assicurarsi di essere il proprietario delle cartelle in cui verrà installato. Aprire il terminale e digitare:

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

Se è stata installata una nuova versione di node.js, si potrebbe ancora ottenere un errore. Prova della cache npm eliminazione:

sudo npm cache clear 
npm install -g cordova 

Quindi digitare cordova e buona fortuna;)

EDIT: questo sembra essere al lavoro su Maverick, Yosemite, El Capitan e Sierra così

+0

Questo non funziona per me. – Deborah

+0

@DeborahSpeece puoi essere più specifico? Forse stai installando i file in un'altra posizione o il problema è diverso. Quale versione di OSX stai usando? –

+0

Utilizzo di Mac OSX Mavericks. Dopo un sacco di strapping dei capelli, npm ha installato sia cordova che PhoneGap per utenti locali, non globali, anche con -g e -gf. Non ero in grado di installarlo per l'utente globale. – Deborah

11

È necessario aggiungere La directory "/ usr/local/share/npm/bin" nella variabile $ PATH. Aprire il terminale di linea/comando e digitare:

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

Raccomando anche di aggiungere il percorso in modo permanente: http://blog.just2us.com/2011/05/setting-path-variable-in-mac-permanently/ – gardenofwine

+0

Mi ha anche aiutato con errore "Errore: ios-sim era non trovato. Scarica, installa e installa la versione 1.7 o successiva da https://github.com/phonegap/ios-sim nel tuo percorso. Oppure 'npm install -g ios-sim' usando node.js: http://nodejs.org/ ' –

0

Si consiglia di aggiornare i percorsi variabili ambientali, se PhoneGap è installato allora si dovrebbe trovare in:

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

se hai trovato questo percorso quindi aggiungilo ai tuoi percorsi.

2

devo chiamare il comando PhoneGap utilizzando nodejs come questo ...

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

Quando eseguo il comando Cordova utilizzando direttamente

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

esso restituisce nulla

1

ho appena ha fatto la stessa domanda con NPM e recentemente ha ottenuto una risposta (npm command not found after updating to Mac OSX 10.9.4), è possibile applicarla anche qui come ho fatto io. Prova questo:

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

ha funzionato per me.

9

Date un'occhiata alle vostre $Path variabili eseguendo il seguente nel terminale:

echo "$PATH" 

Se non vedi la stessa strada Cordova sta cercando di installare, è necessario correggere il percorso di installazione.

Run:

npm config get prefix 

Il valore di default su OS X è /usr/local, il che significa che sarà NPM link simbolico i binari in// local/bin usr, che dovrebbero già essere sul vostro cammino. Se hai un percorso diverso, configura npm per avere la directory locale.

Quindi eseguire questo per cambiare a /usr/local:

npm config set prefix /usr/local 

Questo fatto mi formano. Merito va a: npm global path prefix

+0

Ha funzionato per me! Grazie ... prima, è stato configurato per: /usr/local/Cellar/node/5.3.0/libexec/npm –

0

Tutto ha funzionato per me fino a:

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

Per me, quando si installa un nodo su OSX Yosemiti con Homebrew, il pacchetto di Cordova non era stato creato nella appropriata/usr/local/lib location. Ho dovuto copiare esplicitamente la cartella cordova dai miei .npm-packages su dove avrebbe dovuto essere installata con homebrew.

Il seguente comando ha funzionato per me:

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

In OSX:

Dopo aver installato NPM con birra, se è ancora ottenere command not found, io suggerisco di controllare il tuo nascosta ~/.npm- cartella/bin, e vedi se vedi "cordova" all'interno.Puoi farlo nel seguente modo:

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

Se vedi cordova, devi solo assicurarti che questa directory sia nel tuo percorso. Se stai usando bash, assicurati di modificare il tuo ~/.bashrc con il seguente (alternativa, se stai usando zsh, modifica il seguente file ~/.zshrc) aggiungendo questa riga alla fine (sostituendo EDIT_THIS_PUT_YOUR_USER_NAME_HERE con il nome utente effettivo):

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

Successivamente entrambe le fonti il ​​file appena modificato o semplicemente uscire il terminale e aprirne uno nuovo. Ecco le istruzioni per l'origine del file: se hai modificato il tuo ~/.bashrc, digita semplicemente "source ~/.bashrc", in alternativa se stai usando zsh invece di bash e hai modificato ~/.zshrc, quindi digita semplicemente 'source ~/.zshrc' e sei a posto. Ora dovresti essere in grado di digitare "cordova" e vedere l'output corretto sullo schermo.

0

Per gli utenti di Ubuntu, che si trova a ~/.npm-global/bin

aggiungendo la seguente riga nel ~/.bashrc sta andando risolvere il problema.

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

Nel mio caso il problema era, prefisso NPM è stata impostata su un percorso diverso e cmd non è stato in grado di scegliere da esso.

ho risolto il problema utilizzando

npm config set prefix "/usr/local" 

prima di provare questo si poteva vedere teh prefisso effettivamente utilizzata dal NPM utilizzando il seguente comando,

npm config get prefix