Yeomanジェネレーターに問題があります。 「npm install [generator-name] -g」を実行すると、問題なくインストールされます。しかし、「yo [generator-name] yeomanを実行しようとすると、ジェネレーターが見つからないようです。「yo」を実行すると、他のジェネレーターにもリストされません。多くのジェネレーターと結果を試しました。常に同じです。
少し調査した結果、ダウンロードしたジェネレーターが
/usr/local/lib/node_modules/
しかし、他のジェネレーターは
/usr/local/lib/share/npm/lib/node_modules/
これが私のマシンでどのように見えるかのイメージです http://i.imgur.com/DxWTYHb.png 、それが重要な場合にはOSXを実行しています。何かが私にとって間違っているように見えます-しかし、私はそれを理解することはできません。
これが役立つかどうかはわかりませんが、$ PATHが返す間、brew doctorと$ NODE_PATHは何も返しません:
-bash:
/usr/local/share/npm/bin:
/Users/marcus/.rvm/gems/Ruby-2.0.0-p247/bin:
/Users/marcus/.rvm/gems/Ruby-2.0.0-p247@global/bin:
/Users/marcus/.rvm/rubies/Ruby-2.0.0-p247/bin:
/Users/marcus/.rvm/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/local/git/bin: No such file or directory
[〜#〜] update [〜#〜]
Eddie Monge Jrが提案したことを試してみたところ、angularジェネレーターは問題なく動作します。
実行するとls $(npm config get prefix)/ lib/node_modulesこれが得られます:
bower generator-mocha
generator-angular grunt-cli
generator-chrome-extension npm
generator-karma yo
そして、npm list -gはこれを返します(多くの一般的なものを切り取りました)
/usr/local/lib
├─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
├─┬ [email protected]
├─┬ [email protected]
└─┬ [email protected]
私にとって奇妙な部分は、yo --helpを実行すると、ジェネレータの奇妙なリストが表示されることです。
[?] What would you like to do?
[ ] Run the Angular generator
[ ] Run the Foundation generator
[ ] Run the H5bp generator
[X] Run the Mocha generator
[ ] Run the Webapp generator
[ ] Run the Karma generator
[ ] Update your generators
[ ] Install a generator
[ ] Find some help
[ ] Get me out of here!
Ubuntu Precision32 Vagrant vmにYeomanをインストールしてみました。私は同じ問題に出くわしました:Yeomanはインストールしたジェネレーターを見つけませんでしたが、これらのジェネレーターのインストール中にエラーはありませんでした。ファイルは適切に配置されており、許可は問題ないと思われました。
上記の解決策は私にとってはうまくいきませんでした。
走った
yo doctor
何が間違っていたのか、そして判明したように、以下が問題でした:
[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------
[Error] NPM root value is not in your NODE_PATH
[info]
NODE_PATH = /usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
NPM root = /home/vagrant/npm/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:/home/vagrant/npm/lib/node_modules
Or run this command
echo "export NODE_PATH=$NODE_PATH:/home/vagrant/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
Yeoman Doctorによって提案された修正は、宣伝どおりに機能しました。
私はこの問題にぶつかり、誰かの助けになることを望んでいます。 NPMをアップグレードすると、この最初の問題が発生したと思います。
/usr/local/lib/node_modules
過去に私のモジュールの多くの場所でした。ある時点でノードをアップグレードしたため、ディレクトリは
/usr/local/share/npm/lib/node_modules
次のような新しいインストールを実行する場合:
npm install -g grunt-cli
私はコマンドラインからgrunt
を実行しているので、それを「見つける」ことはできません(新しいnode_modulesディレクトリにないためです)。私はこれを私の.bash_profileで設定しました:
export PATH=$PATH:/usr/local/share/npm/bin
newnode_modules
ディレクトリを指しているので、インストールするすべての新しいnpmモジュールは正しい場所を見つけます:/ usr/local/share/npm/lib/node_modules
しかし、yo
ではありません
which yo
を実行しましたが、パスは
/usr/local/bin/yo
このバイナリは[〜#〜] old [〜#〜]node_modules
インストールを指していました@
/usr/local/lib/node_modules
私の解決策はこれを行うことでした
rm /usr/local/bin/yo
npm remove -g yo
yo
への古い参照は保持のためになくなりました。
npm install -g yo
これにより、新しいnode_modules
ロケーションに追加されます
/usr/local/share/npm/lib/node_modules
そして今、新しい「yo」は適切なnode_modulesインストールベースを参照しています
source ~/.bash_profile
そうすれば、適切なスポットから参照されていることがわかります
which yo
/usr/local/share/npm/bin/yo
将来のジェネレータはすべて適切なnode_modules
ディレクトリに配置され、yo
は問題なくそれらを見つけることができます!
Yeomanを完全にアンインストールしてから再インストールしました
npm remove -g yo
npm install -g yo
これにより、angularジェネレーターが見つからないという問題が修正されました。
Npmが正常に動作していないようです。物事がインストールされている場所を確認してください:npm config get prefix現在インストールされている場所ですか?
そこにあるものをリストするには:
ls $(npm config get prefix)/lib/node_modules
これにより、グローバルにインストールされたnpmパッケージがリストされます。
npm list -g
現在インストールされているものをリストします。ヨーと発電機が最上位にリストされていることを確認してください。
よものを削除して最初からやり直すには:
npm remove -g yo generator-* yeoman-generator
npm install -g yo generator-angular
それは物事を修正する必要があります。