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.

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


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 .


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 .


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


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


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 .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.