Estoy buscando un comando que enumere los nombres de los módulos globales que tengo npm link en las copias locales, y que también enumere la ruta local.
De hecho, una lista de todos los módulos instalados globalmente sería aún mejor, con los npm link"d" marcados de alguna manera.

npm -g lsdebería enumerar todos los módulos globales, pero no sé si enumera los módulos vinculadosnpm link'd. Necesito una forma de realizar un seguimiento.Respuestas:
¿Intentaste simplemente enumerar el
node_modulescontenido directorio (por ejemplols -l node_modules | grep ^l)? Son enlaces simbólicos normales.Si realmente necesita encontrar todos los enlaces simbólicos, puede intentar algo como
find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l.fuente
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^lls -l -R ./node_modules | grep ^lPara enumerar todos los módulos vinculados globalmente, esto funciona (documentación https://docs.npmjs.com/cli/ls ):
Sin embargo, primero tuve que actualizar la versión de npm en mi máquina:
fuente
--link=true. Mi entorno: Win10, NVM = 1.1.7, Nodo actual = 8.14.0npm unlink <package> -gUna mejor alternativa al análisis
lses usarlofindasí:Puede usar
-maxdepth 1para procesar solo el primer nivel de directorio:Puede utilizar
-lspara obtener información adicional.Por ejemplo, para encontrar módulos de nodo que están vinculados a npm:
Aquí hay un artículo por el que analizar
lsno es la mejor ideafuente
Si desea una salida en color agradable
npm list, le puede gustar:que da en mi directorio de juegos actual:
Hace algunas suposiciones, pero debería funcionar en la mayoría de los casos o ser fácil de adaptar con las explicaciones a continuación.
\lspara omitir posibles alias en sulscomando-Fopción agrega un indicador '@' para los enlacessedcomando selecciona esos enlaces y elimina el indicadorxargsparte pasa la salida anterior como argumentos anpm ...npmse invoca conlistolspara listar módulos con versionesllpara obtener detalles sobre cada módulo enumerado.-gpara los módulos globales y--depth 0para una lista poco profunda (opcional)--long false(predeterminado con 'lista').Problema: por alguna razón, npm me da entradas extrañas en este momento (sin color). Serían los que tuve " npm unlink " ed.
Para obtener " una lista de todos los módulos instalados globalmente " en la ruta npm actual, simplemente haga
Para otras necesidades, es posible que desee echar un vistazo a
No puede seguir los enlaces simbólicos hacia atrás a menos que escanee todo su sistema de archivos y (entonces esa no es una pregunta específica de npm).
Para encontrar rápidamente archivos y directorios por nombre, utilizo
locateque funciona en un índice reconstruido generalmente una vez al día.y comience a trabajar desde allí (es posible que desee refinar la búsqueda con la
--regexpopción.fuente
-gpara obtener mis enlaces de dependencia transitorios locales / más cercanos. ¡Gracias!Encontré esta pregunta después de que también escribí mi propia herramienta, aquí está para completar: npm-list-linked .
También seguirá recursivamente todos los paquetes vinculados hacia abajo en la jerarquía, en mi trabajo a veces podemos tener
npm link2-3 niveles de profundidad y de esta manera puede ver exactamente cuáles son locales y cuáles no, evita sorpresas.fuente
Hice un módulo Node.js que se usa
fspara verificar los enlaces simbólicos creados pornpm linko de otra manera.https://www.npmjs.com/package/symlinked
fuente
Me veo a mí y a los demás teniendo muchas veces esta misma pregunta. Escribí una pequeña CLI para mí llamada
link-statuspara mostrar esta información, ¡también puede ayudar a otros! ¡Compruébalo aquí!fuente
para mostrar enlaces globales, incluidos los paquetes con espacios de nombres.
La respuesta de @ andrew funciona algunas veces:
pero explotó en errores de depuración de pares para mí en algunas ocasiones. ¡Espero que ayude a alguien!
fuente