47

私は質問をするつもりはありませんが、これまでオンラインでこのアドバイスを見つけたことがなく、自分でこれを見つけたので、1 つ答えてください。共有するのはいいことですよね?


そのため、コマンドラインで次のようにしました。

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

これはうまくいきましたが、次にこれらの行のいずれかを実行したとき:

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

これらのメッセージを受け取りました:

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

なんで?/usr/local/lib ディレクトリのアクセス許可が「everyone: No Access」に設定されていることがわかりました。それを「全員:読み取り専用」に変更して、もう一度やり直しました。

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

今回は彼らが働いた!テストとして、「everyone: No Access」に戻して、本当に問題があるかどうかを確認しました。今回は別のメッセージを受け取りました:

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

結果は同じでしたが、コマンドラインからcordovaまたはphonegapを呼び出すことができませんでした(誰かが検索した場合に備えて、これらの最後の2つの拒否メッセージを含めています).

4

19 に答える 19

70

Mac Os Mountain Lion を使用しています。何度か試行した後、ソリューションは非常に迅速であることがわかりました。

Cordova をインストールする前に、インストール先のフォルダーの所有者であることを確認してください。ターミナルを開き、次のように入力します。

sudo chown -R $USER /usr/local/bin
sudo chmod -R 0775 /usr/local/bin

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

新しいバージョンの node.js をインストールした場合でも、エラーが発生する可能性があります。npm キャッシュを削除してみてください:

sudo npm cache clear
npm install -g cordova

次に、入力cordovaして頑張ってください;)

編集: macOS Mojave で動作するように更新されました。

注: Mojave では、所有権を完全に変更することはできず/usr/local/、エラーがスローされます。

chown: /usr/local: Operation not permitted

node_modules修正は非常に簡単です。サブフォルダーへのパスを指定するだけです。

この変更により、他の多くの一般的なパッケージをインストールする際の同様の一般的な問題も修正されます。

于 2013-10-01T10:33:05.260 に答える
17

$Pathターミナルで次のコマンドを実行して、変数を確認します。

echo "$PATH" 

cordova がインストールしようとしているのと同じパスが表示されない場合は、インストール場所を修正する必要があります。

走る:

 npm config get prefix

OS X のデフォルトは です/usr/local。これは、npm がバイナリを /usr/local/bin にシンボリック リンクすることを意味します。これは既に PATH にあるはずです。別のパスがある場合は、ローカル ディレクトリを持つように npm を構成します。

したがって、これを実行して次のように変更し/usr/localます。

 npm config set prefix /usr/local

それが私を形成しました。クレジットは次のとおりです: npm グローバル パス プレフィックス

于 2015-12-08T18:33:49.770 に答える
11

「/usr/local/share/npm/bin」ディレクトリを $PATH 変数に追加する必要があります。ターミナル/コマンド ラインを開き、次のように入力します。

export PATH=$PATH:/usr/local/share/npm/bin
于 2013-10-08T14:32:48.047 に答える
2

このようにnodejsを使用してphonegapコマンドを呼び出す必要があります...

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

コルドバコマンドを直接実行すると

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

それは何も返しません

于 2014-08-31T20:21:42.703 に答える
2

OSX の場合:

npm を brew でインストールした後、まだコマンドが見つからない場合は、非表示の ~/.npm-packages/bin ディレクトリを調べて、内部に「cordova」があるかどうかを確認することをお勧めします。これは次の方法で行うことができます。

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

そこに cordova が表示されている場合は、このディレクトリがパスにあることを確認する必要があります。bash を使用している場合は、必ず ~/.bashrc を次のように編集してください (代わりに、zsh を使用している場合は、次のファイル ~/.zshrc を編集します)。この行を末尾に追加します (EDIT_THIS_PUT_YOUR_USER_NAME_HERE を次のように置き換えます)。実際のユーザー名):

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

その後、編集したばかりのファイルをソースするか、単にターミナルを終了して新しいファイルを開きます。~/.bashrc を編集した場合は、「source ~/.bashrc」と入力します。または、bash の代わりに zsh を使用していて、~/.zshrc を編集した場合は、次のように入力します。 'source ~/.zshrc' で準備完了です。「cordova」と入力すると、画面に正しい出力が表示されるはずです。

于 2016-10-02T18:48:30.703 に答える
0

私の場合、Homebrew を使用して OSX Yosemiti にノードをインストールすると、Cordova パッケージが適切な /usr/local/lib の場所に作成されませんでした。cordova フォルダーを .npm-packages から自作でインストールする必要がある場所に明示的にコピーする必要がありました。

次のコマンドは私のために働いた:

sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova
于 2016-06-13T14:39:57.513 に答える
0

bash ファイルに cordova bin へのパスを追加する必要があります。

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

ファイルを編集した後、ターミナルを閉じて再度開いてみてください。

于 2013-07-31T16:05:05.330 に答える