J'ai un problème avec les générateurs Yeoman. Ils s'installent très bien si je lance "npm install [générateur-nom] -g". Cependant, lorsque j'essaie d'exécuter "yo [nom du générateur], yeoman ne semble pas trouver le générateur. Il n'est pas non plus répertorié parmi mes autres générateurs si je lance simplement" yo ". J'ai essayé un tas de générateurs et le résultat est toujours le même.
Après un peu d'enquête, j'ai trouvé que le générateur téléchargé était placé dans
/usr/local/lib/node_modules/
Mais mes autres générateurs sont placés dans
/usr/local/lib/share/npm/lib/node_modules/
Voici une image de son apparence sur ma machine http://i.imgur.com/DxWTYHb.png , j'utilise OSX au cas où cela importerait. On dirait que quelque chose ne va pas pour moi - mais je ne peux pas le comprendre.
Je ne sais pas si cela aide, mais brew doctor et $ NODE_PATH ne renvoient rien tandis que $ PATH renvoie:
-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
[~ # ~] mise à jour [~ # ~]
J'ai essayé ce qu'Eddie Monge Jr a suggéré et maintenant mon générateur angular fonctionne bien. Cependant, quand j'ai installé un autre générateur (extension chromée), yeoman insiste sur le fait qu'il n'est pas installé/trouvé.
Lorsque je lance ls $ (npm config get prefix)/lib/node_modules j'obtiens ceci:
bower generator-mocha
generator-angular grunt-cli
generator-chrome-extension npm
generator-karma yo
Et npm list -g renvoie ceci (j'ai coupé beaucoup de choses génériques)
/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]
La partie étrange pour moi est que si je lance yo --help j'obtiens une liste étrange de générateurs
[?] 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!
J'ai essayé d'installer Yeoman sur un vm Ubuntu precise32 vagrant. J'ai rencontré le même problème: Yeoman n'a pas trouvé les générateurs que j'ai installés, bien qu'il n'y ait eu aucune erreur lors de l'installation de ces générateurs. Les fichiers étaient en place et les autorisations semblaient correctes.
Les solutions ci-dessus n'ont pas fonctionné pour moi.
J'ai couru
yo doctor
pour voir ce qui n'allait pas, et il s'est avéré que le problème était le suivant:
[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
Le correctif suggéré par le médecin Yeoman a fonctionné comme annoncé.
J'ai touché ce problème et j'espère que cela aidera quelqu'un. Je crois que la mise à niveau de NPM a causé ce problème initial pour moi.
/usr/local/lib/node_modules
Était l'emplacement de beaucoup de mes modules dans le passé. Depuis la mise à niveau du nœud à un moment donné, le répertoire est devenu
/usr/local/share/npm/lib/node_modules
Quand j'exécuterais de nouvelles installations telles que:
npm install -g grunt-cli
Depuis que j'exécute grunt
depuis la ligne de commande, je ne le trouverais pas (c'est parce qu'il n'était pas dans mon nouveau répertoire node_modules). J'ai mis cela en place dans mon .bash_profile:
export PATH=$PATH:/usr/local/share/npm/bin
Maintenant, je pointe vers le nouveanode_modules
répertoire Donc, tous les nouveaux modules npm que j'installe trouvent le bon emplacement:/usr/local/share/npm/lib/node_modules
Mais pas yo
J'ai couru un which yo
et mon chemin était
/usr/local/bin/yo
Ce binaire pointait vers L'ANCIEN node_modules
installation @
/usr/local/lib/node_modules
Ma solution était de le faire
rm /usr/local/bin/yo
npm remove -g yo
L'ancienne référence à yo
a disparu, maintenant je peux le faire
npm install -g yo
Cela l'ajoutera au nouveau node_modules
emplacement
/usr/local/share/npm/lib/node_modules
et maintenant le nouveau "yo" fait référence à la base d'installation appropriée de node_modules
source ~/.bash_profile
alors nous pouvons voir yo est référencé au bon endroit
which yo
/usr/local/share/npm/bin/yo
tous les futurs générateurs seront placés dans le bon node_modules
répertoire et yo
pourront les trouver sans problème!
J'ai entièrement désinstallé yeoman, puis l'ai réinstallé
npm remove -g yo
npm install -g yo
Cela a résolu mon problème avec les générateurs angular angulaires.
Il semble que votre npm soit hors de contrôle. Vérifiez où les choses sont installées: npm config get prefix Est-ce là que vous vous attendiez à ce que les packages soient installés? Est-ce là où ils sont actuellement installés?
Pour énumérer ce qui s'y trouve:
ls $(npm config get prefix)/lib/node_modules
Cela listera les packages npm installés globalement.
npm list -g
Répertorie les éléments actuellement installés. Assurez-vous que yo et les générateurs sont répertoriés au niveau supérieur.
Pour supprimer le truc yo et recommencer:
npm remove -g yo generator-* yeoman-generator
npm install -g yo generator-angular
Cela devrait arranger les choses.