node npm yeoman

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.