Estaba intentando actualizar a phonegap
través de npm
cuando comencé a tener problemas. En pocas palabras, hay dos node_modules
directorios en mi computadora.
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Cuando ejecuto npm upgrade -g phonegap
, parece que npm
actualiza la copia del paquete que reside en /usr/local/lib/node_modules
. Sin embargo, si which phonegap
encuentro que el enlace simbólico apunta a la instalación anterior en /usr/local/share/npm/lib/node_modules
.
Además, cuando intento instalar un paquete independiente como express
, los archivos se instalan en el /usr/local/lib/node_modules
directorio, pero no se crea ningún enlace simbólico al ejecutable en ninguna parte de mi $PATH
.
Dos preguntas:
- ¿Cuál es el directorio adecuado para los módulos de nodo en Mac OS X?
¿Cómo puedo configurarnpm
para vincular ejecutables en mi$PATH
cuando instala software?
Puntos extra: ¿El método de instalación node
afecta la configuración? Hay muchas opciones .
EDITAR : Descubrí que se estaban creando enlaces simbólicos en mi /usr/local/bin
, pero mi .bash_profile
se configuró /usr/local/share/npm/bin
antes que /usr/local/bin
en mi $PATH
. Recuerdo vagamente haber agregado esa ruta a mi perfil en algún momento, pero no estoy seguro de por qué.
Entonces, la pregunta ahora es: ¿cómo terminé con dos node_modules
directorios diferentes en mi computadora y por qué querría tener mi node_modules
en el share/npm/lib
subdirectorio en lugar de en el derecho /usr/local/lib
?
Segundo Thomas David Kehoe , con la siguiente advertencia:
Si está utilizando el administrador de versiones de nodo (nvm), sus módulos de nodo global se almacenarán en la versión de nodo que esté utilizando en el momento en que guardó el módulo.
Entonces
~/.nvm/versions/node/{version}/lib/node_modules/
.fuente
para verificar la ubicación global de npm_modules
fuente
Si desea conocer la ubicación de sus paquetes NPM, debe:
which npm // locate a program file in the user's path SEE man which // OUTPUT SAMPLE /usr/local/bin/npm la /usr/local/bin/npm // la: aliased to ls -lAh SEE which la THEN man ls lrwxr-xr-x 1 t04435 admin 46B 18 Sep 10:37 /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
Entonces, dado que npm es un paquete NODE en sí mismo, se instala en la misma ubicación que otros paquetes ( EUREKA ). Entonces, para confirmar, debe cd en node_modules y listar el directorio.
cd /usr/local/lib/node_modules/ ls #SAMPLE OUTPUT @angular npm .... all global npm packages installed
O
Según el comentario de @anthonygore
fuente
npm root -g
ywhich npm
no dio los mismos resultados. Quería desinstalarexpo-cli
y lo logré eliminandoexpo
yexpo-cli
directorios de/usr/local/bin/npm
. ¡Gracias @ T04435!