Estou procurando um comando que liste os nomes dos módulos globais que eu tenho npm link
para cópias locais, também listando o caminho local.
De fato, uma lista de todos os módulos instalados globalmente seria ainda melhor, com npm link
os de alguma forma sinalizados .
npm -g ls
deve listar todos os módulos globais, mas eu não sei módulos se listas ligadasnpm link
. Eu preciso de uma maneira de acompanhar.Respostas:
Você tentou apenas listar o
node_modules
conteúdo do diretório (por exemplols -l node_modules | grep ^l
)? Eles são links simbólicos normais.Se você realmente precisar encontrar todos os links simbólicos, tente algo como
find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l
.fonte
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
Para listar todos os módulos vinculados globalmente, isso funciona (documentação https://docs.npmjs.com/cli/ls ):
Eu tive que atualizar a versão do npm na minha máquina primeiro, no entanto:
fonte
--link=true
. Meu ambiente: Win10, NVM = 1.1.7, nó atual = 8.14.0npm unlink <package> -g
Uma alternativa melhor para a análise
ls
é usarfind
assim:Você pode usar
-maxdepth 1
para processar apenas o primeiro nível de diretório:Você pode usar
-ls
para informações adicionais.Por exemplo, para localizar módulos de nós vinculados ao npm:
Aqui está um artigo por que analisar
ls
não é a melhor ideiafonte
Se você deseja uma boa saída colorida
npm list
, pode gostar de:que dá no meu dir playground atual:
Ele faz algumas suposições, mas deve funcionar na maioria dos casos ou ser fácil de adaptar-se às explicações abaixo.
\ls
para ignorar possíveis aliases em seuls
comando-F
opção adiciona um indicador '@' para linkssed
comando seleciona esses links e remove o indicadorxargs
parte passa a saída anterior como argumentos paranpm ...
npm
é invocado comlist
ouls
para listar módulos com versõesll
para obter detalhes sobre cada módulo listado.-g
para os módulos globais e--depth 0
para uma listagem superficial (opcional)--long false
(padrão com 'lista').Problema: por alguma razão, o npm fornece entradas estranhas para mim no momento (não coloridas). Eles seriam aqueles que eu tinha " desassociado ".
Para " uma lista de todos os módulos instalados globalmente " no caminho atual do npm, basta fazer
Para outras necessidades, você pode querer dar uma olhada
Você não pode seguir os links simbólicos para trás, a menos que verifique todo o sistema de arquivos e (isso não é uma pergunta específica da NPM).
Para encontrar rapidamente arquivos e diretórios por nome, eu uso o
locate
que funciona em um índice reconstruído geralmente uma vez por dia.e comece a trabalhar a partir daí (você pode refinar a pesquisa com a
--regexp
opçãofonte
-g
para obter meus links de dependência transitória local / mais próxima. Obrigado!Eu encontrei essa pergunta depois que também escrevi minha própria ferramenta, aqui está a questão de completar: npm-list-linked .
Ele seguirá recursivamente todos os pacotes vinculados na hierarquia também; no meu trabalho, às vezes, podemos ter
npm link
2-3 níveis de profundidade e, dessa forma, você pode ver exatamente quais são locais e quais não, evita surpresas.fonte
Eu criei um módulo Node.js que usa
fs
para verificar se há links simbólicos criados pornpm link
ou não.https://www.npmjs.com/package/symlinked
fonte
Eu me vejo e outros tendo essa mesma pergunta muito. Eu escrevi uma pequena CLI para mim chamada
link-status
para exibir essas informações, também pode ajudar outras pessoas! Confira aqui!fonte
para mostrar links globais, incluindo pacotes com namespace.
A resposta do @ andrew funciona algumas vezes:
mas explodi em erros de dep pares para mim em algumas ocasiões. Espero que ajude alguém!
fonte