npm - node - ¿Por qué mis generadores Yeoman se instalan en el lugar equivocado?
yo angular (4)
Tengo un problema con los generadores Yeoman. Se instalan muy bien si ejecuto "npm install [generator-name] -g". Sin embargo, cuando trato de ejecutar "yo [nombre-generador], parece que el operador no puede encontrar el generador. Tampoco aparece en la lista de mis otros generadores si solo ejecuto" yo ". He intentado un montón de generadores y el resultado es siempre lo mismo
Después de un poco de investigación, descubrí que el generador descargado se coloca en
/usr/local/lib/node_modules/
Pero mis otros generadores se colocan en
/usr/local/lib/share/npm/lib/node_modules/
Aquí hay una imagen de cómo se ve en mi máquina http://i.imgur.com/DxWTYHb.png , estoy ejecutando OSX en caso de que eso importe. Parece que algo está mal para mí, pero no puedo resolverlo.
No estoy seguro si esto ayuda, pero el doctor brew y $ NODE_PATH no devuelven nada mientras $ PATH regresa:
-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
ACTUALIZAR
Probé lo que sugirió Eddie Monge Jr y ahora mi generador angular funciona bien. Sin embargo, cuando instalé otro generador (chrome-extension), yeoman insiste en que no está instalado / encontrado.
Cuando ejecuto ls $ (npm config get prefix) / lib / node_modules obtengo esto:
bower generator-mocha
generator-angular grunt-cli
generator-chrome-extension npm
generator-karma yo
Y npm list -g devuelve esto ( recorté un montón de cosas genéricas)
/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 parte extraña para mí es si corro yo - ayudo a obtener una lista extraña de generadores
[?] 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!
Desinstalé por completo a yeoman, luego lo reinstalé
npm remove -g yo
npm install -g yo
Esto solucionó mi problema con los generadores angulares faltantes.
Intenté instalar Yeoman en Ubuntu Ubuntu vagrant vm. Me encontré con el mismo problema: Yeoman no encontró los generadores que instalé, aunque no hubo errores durante la instalación de estos generadores. Los archivos estaban en su lugar y los permisos parecían correctos.
Las soluciones anteriores no funcionaron para mí.
corrí
yo doctor
para ver lo que estaba mal, y resultó que el siguiente era el problema:
[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
La solución sugerida por Yeoman Doctor funcionó según lo anunciado.
Llegué a este problema y espero que ayude a alguien. Creo que la actualización de NPM me causó este problema inicial.
/usr/local/lib/node_modules
Fue la ubicación de muchos de mis módulos en el pasado. Desde la actualización del nodo en algún punto, el directorio se convirtió
/usr/local/share/npm/lib/node_modules
Cuando ejecutaba instalaciones nuevas, como:
npm install -g grunt-cli
Yo desde que grunt
desde la línea de comando no lo ''encontraría'' (eso es porque no estaba en mi nuevo directorio node_modules). Configuré esto en mi .bash_profile:
export PATH=$PATH:/usr/local/share/npm/bin
Ahora estoy señalando el nuevo directorio node_modules
Entonces todos los nuevos módulos npm que instalo encuentran la ubicación correcta: / usr / local / share / npm / lib / node_modules
Pero no yo
Ejecuté un which yo
y mi camino era
/usr/local/bin/yo
Este binario apuntaba a la instalación OLD node_modules
@
/usr/local/lib/node_modules
Mi solución fue hacer esto
rm /usr/local/bin/yo
npm remove -g yo
La referencia anterior a yo
se ha ido para siempre, ahora puedo hacerlo
npm install -g yo
Esto lo agregará a la nueva ubicación de node_modules
/usr/local/share/npm/lib/node_modules
y ahora el nuevo ''yo'' hace referencia a la base de instalación de node_modules correcta
source ~/.bash_profile
entonces podemos ver que se hace referencia a ti desde el lugar apropiado
which yo
/usr/local/share/npm/bin/yo
¡todos los generadores futuros se colocarán en el directorio node_modules
adecuado y podrás encontrarlos sin ningún problema!
Parece que tu npm puede estar fuera de control. Verifique dónde se instalan las cosas: npm config get prefix ¿Es allí donde esperaba que se instalaran los paquetes? ¿Es allí donde están actualmente instalados?
Para enumerar lo que está allí:
ls $(npm config get prefix)/lib/node_modules
Eso listará los paquetes npm instalados globalmente.
npm list -g
Listará las cosas actualmente instaladas. Asegúrate de que yo y los generadores estén listados en el nivel superior.
Para eliminar el material de yo y comenzar de nuevo:
npm remove -g yo generator-* yeoman-generator
npm install -g yo generator-angular
Eso debería arreglar las cosas.