web-dev-qa-db-ja.com

Yeomanのインストール後に「yo:コマンドが見つかりません」を修正する方法

これらの指示に従って、npmを2回使用してyeomanをインストールしようとしました: http://yeoman.io/learning/index.html

最初の障害の後、次の手順を使用してノードをアンインストールしました: Node.jsを完全にアンインストールし、最初から再インストールする方法(Mac OS X) 次に、nvmとnode/npmを(nvm経由で)インストールしました1つのエラーがあります:

[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------

[Error] NPM root value is not in your NODE_PATH
  [info]
    NODE_PATH = /Users/joanna/.nvm/v0.10.22/lib/node_modules:.
    NPM root  = /Users/joanna/.node/lib/node_modules

  [Fix] Append the NPM root value to your NODE_PATH variable
    Add this line to your .bashrc
      export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules
    Or run this command
      echo "export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

そのコマンドを貼り付けてから、npm install -g yoもう一度。

Yeomanサイトの指示を再度実行しても、まだyeomanが見つかりません。次のエラーが表示されます:-bash:yo:command not found

なにが問題ですか?ヨーマン・ドクターは言う:「すべてが大丈夫だ!」

30
Joanna Marsden

問題の原因は、NVMを同時に使用しているときにNODE_PATHが設定されていることです。 NVMを使用する場合、NVMはバージョン固有のルートにグローバルパッケージをインストールするため、NODE_PATH変数を使用しないでください。

NODE_PATHにあるすべてのパッケージを削除し、環境変数を削除して、yoおよびジェネレーターまたは必要なその他のグローバルパッケージをインストールします。文句を言うのをやめて、すべてが現在のバージョンに一致するnvmサブディレクトリにあることがわかります。

NVMで別のNodeバージョンを使用し始めたら、グローバルパッケージを再インストールします。これにより、意図したとおりにバージョンごとにすべてが整然と整理されます。

このディスカッションの詳細はこちら: https://github.com/creationix/nvm/pull/97

10

必要なのは、追加この行を.bash_profile

export PATH="$PATH":~/.node/bin

execute thisで自動的に追加できます:

printf "\nexport PATH=\"\$PATH\":%s\n" ~/.node/bin >> ~/.bash_profile

OS X 10.9、10.10、10.11、Ubuntu 14.04でテスト済み

23
fregante

ショートバージョン:

シェルで、次のコマンドを入力します。

  1. npm config set prefix ~/npm

  2. echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

  3. 次に、Yeomanを再インストールします。

    npm install -g yo

その後、すべてが正常に動作するはずです!

説明:

Yoコマンドは機能したが、インストールしたジェネレーターがインストール後に表示されないことを除いて、同様の条件がありました。これで問題は解決しました。

問題は、npmパスが/ usr/localに設定されていることです。これは、root/Sudo特権を必要とするディレクトリです。yoはユーザーコマンドであるため、スーパーユーザーとして実行しないでください。実行Sudo yo、Yeomanはそれを明示的に伝えます。

また、chown -R $USER:$USER /usr/local、およびchmod -R /user/local +rw、しかしそれらのどれも助けなかった。

以前に/ usr/localにインストールされていたノードモジュール(yoジェネレーターはノードモジュールでもある)は使用できなくなる可能性があり、再インストールが必要になることに注意してください。

18
Oleg Belousov

Ubuntuでの私にとっては、以下だけがうまくいきました...

Ubuntu

Ubuntu 14.04.2でテスト済み

これは、ubuntu-trusty-64を使用したVirtualBoxへのUbuntu 14.04.2の基本インストールでした。

Nodeとnpmをインストールしたばかりで、うまく機能していました。

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo

はい、yeomanをインストールし、パスの問題を修正してから、yeomanを再インストールする必要がありました。

説明は上記のOleg Tikhonovとbfred.itからです

12
svnm

付け加えるだけで、私はOS X 10.11.1を使用しています。steveが言及したコードは私にも機能します。

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo
4
Jason

上記の提案を試してみたところ、予想どおり、yeomanが/Users/joanna/.node/bin/yoにインストールされていることに気付きました。 /usr/local/binでyo、grunt、bowerへのシンボリックリンクを設定します

ln -s /Users/joanna/.node/bin/yo /usr/local/bin/yo
ln -s /Users/joanna/.node/bin/grunt /usr/local/bin/grunt
ln -s /Users/joanna/.node/bin/bower /usr/local/bin/bower

現在はすべて動作しますが、リンクが将来問題を引き起こす可能性があることを心配しています。より良い解決策はありますか?

4
Joanna Marsden

npmがインストールされている場所を確認します。

where npm

上記のコマンドを実行すると、次のようにnpmがあるディレクトリが一覧表示されます。

/usr/local/Cellar/node/5.1.0/libexec/npm/bin/npm

次のように、binフォルダーまでパスをコピーし、PATH変数と同じものをエクスポートします。

export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin
0
Arpit

私は使用しました:

$HOME/npm/bin

そして、それはかなりうまくいきました!

In MAC OSX

0
Despertaweb

私の場合、私は実行しなければなりませんでした:

npm config delete prefix

次に、nvmバージョンを設定します

nvm use 8

そしてそれは動作します

0
Badr Bellaj