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 ls
deberí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_modules
contenido 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 ^l
ls -l -R ./node_modules | grep ^l
Para 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> -g
Una mejor alternativa al análisis
ls
es usarlofind
así:Puede usar
-maxdepth 1
para procesar solo el primer nivel de directorio:Puede utilizar
-ls
para 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
ls
no 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.
\ls
para omitir posibles alias en suls
comando-F
opción agrega un indicador '@' para los enlacessed
comando selecciona esos enlaces y elimina el indicadorxargs
parte pasa la salida anterior como argumentos anpm ...
npm
se invoca conlist
ols
para listar módulos con versionesll
para obtener detalles sobre cada módulo enumerado.-g
para los módulos globales y--depth 0
para 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
locate
que 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
--regexp
opción.fuente
-g
para 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 link
2-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
fs
para verificar los enlaces simbólicos creados pornpm link
o 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-status
para 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