Estaba intentando actualizar a phonegaptravés de npmcuando comencé a tener problemas. En pocas palabras, hay dos node_modulesdirectorios en mi computadora.
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Cuando ejecuto npm upgrade -g phonegap, parece que npmactualiza la copia del paquete que reside en /usr/local/lib/node_modules. Sin embargo, si which phonegapencuentro 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_modulesdirectorio, 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 configurarnpmpara vincular ejecutables en mi$PATHcuando instala software?
Puntos extra: ¿El método de instalación nodeafecta la configuración? Hay muchas opciones .
EDITAR : Descubrí que se estaban creando enlaces simbólicos en mi /usr/local/bin, pero mi .bash_profilese configuró /usr/local/share/npm/binantes que /usr/local/binen 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_modulesdirectorios diferentes en mi computadora y por qué querría tener mi node_modulesen el share/npm/libsubdirectorio 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.jsEntonces, 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 installedO
Según el comentario de @anthonygore
fuente
npm root -gywhich npmno dio los mismos resultados. Quería desinstalarexpo-cliy lo logré eliminandoexpoyexpo-clidirectorios de/usr/local/bin/npm. ¡Gracias @ T04435!