Como saber se o pacote npm foi instalado global ou localmente

153

Estou instalando grunt, node, npm, bower e grunt-cli no windows7.

As instruções dizem que eu devo executar os comandos de instalação com o sinalizador -g para global.

Como posso verificar se usei o sinalizador -g quando instalei. Levará muito tempo para desinstalá-los e reinstalar.

AndraeRay
fonte

Respostas:

219

Use o listcomando com o -gsinalizador para ver todos os pacotes que estão instalados globalmente:

npm list -g

Para verificar se um pacote específico está instalado globalmente, você pode fornecer o nome do pacote ( gruntneste caso), como mostrado abaixo:

npm list -g grunt

Ou você pode usar greppara filtrar os nomes dos pacotes:

npm list -g | grep grunt

Fonte: https://docs.npmjs.com/cli/ls

Muntaser Ahmed
fonte
4
Para um booleano "instalado ou não?" verifique, tente usar --depth. Por exemplo: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Aqui está um exemplo mais detalhado .
Adam Monsen
2
@AdamMonsen, eu estava procurando por uma instalação de nível superior de andorinha-do-mar. I utilizado npm list --depth 0 --global ternpara verificar se tern foi instalado mundialmente como senpm install -g tern
Sudhi
grepparece ser uma solução bastante confiável dado os comentários sobre npm sair com um erro devido a dependências não satisfeitas
myol
31
npm list --depth 1 --global packagename > /dev/null 2>&1

Você pode verificar o status da saída para ver se está instalado ou não. Obrigado Adam Monsen .

Flimm
fonte
3
obrigado por --depth 1! era isso que eu estava procurando. Na verdade, eu estou usando agoranpm list --depth 0 -g
revelt 28/07
Por alguma razão, $?sempre retorna 1para mim, mesmo que o pacote esteja instalado ou NÃO.
Katie
4
AVISO: o npm sempre será encerrado com um erro se algum dos seus pacotes tiver dependências não atendidas, mesmo que o pacote esteja instalado . @ Kayvar, é por isso que o npm está retornando 1 para você.
Codebling
17

Para verificar se um pacote específico está instalado globalmente, execute:

npm list -g [package-name]

Vamos dar um grunhido como exemplo. Se estiver instalado globalmente, você verá algo parecido com isto

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5

Se não estiver instalado globalmente, você deverá ver algo como isto

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)

Para verificar se um pacote específico está instalado localmente, você pode executar os mesmos comandos acima, mas sem o parâmetro -g.

fonte: Como verificar se o pacote npm foi instalado global ou localmente .

mvermand
fonte
6

Você pode listar todos os pacotes globais com o comando:

npm ls -g

Ou verifique se há um pacote específico com:

npm ls -g [package-name] 

Por exemplo: npm ls -g @angular/cli

Mwiza
fonte
1

No Windows, usamos o seguinte comando para descobrir se o pacote está instalado ou não. Por favor, consulte a imagem para obter detalhes.

npm list -g | find "create"

resultado da amostra

SHARATH P
fonte
0

Do seu pacote com sindresorhus/is-installed-globally

https://github.com/sindresorhus/is-installed-globally

Uso:

const isInstalledGlobally = require('is-installed-globally');

// With `npm install your-package`
console.log(isInstalledGlobally);
//=> false

// With `npm install --global your-package`
console.log(isInstalledGlobally);
//=> true

Achei isso útil quando tive que distribuir arquivos pré-construídos com o meu pacote: Como publicar um pacote npm com arquivos de distribuição? Com este pacote, posso verificar se a instalação é local ou global e, em seguida, usar caminhos relativos para instalações locais, como mostrado aqui .

Ciro Santilli adicionou uma nova foto
fonte