Lidando com pacotes globais do npm
Se você é um(a) desenvolvedor(a) web provavelmente já usou o npm para instalar pacotes de forma global na sua máquina (usando o -g). Um exemplo clássico são os utilitários do create-react-app e o pacote http-server. Quando instalados de forma global, nos permitem que sua utilização seja feita em qualquer diretório/projeto e não somente naqueles em que estão contidos como dependências no package.json.
O npx é uma alternativa interessante para fugirmos das instalações globais, no entanto, nem sempre ele é uma opção viável. Neste caso, fica a dúvida: como podemos ver, atualizar e/ou remover estes pacotes globais?
É sobre isso que falaremos hoje.
Listando os pacotes
Assumindo que você está com o npm em dia na sua máquina, abra o seu terminal e digite o comando:
npm list -g — depth=0
Este comando fará com que todos os pacotes e suas respectivas versões apareçam na tela, conforme mostra o print abaixo.
Notaram que eu não estou com o npm em dia? Vamos ver como podemos fazer para checar se a versão instalada para este pacote é a mais recente.
Atualizando os pacotes
Para checar se os pacotes instalados globalmente estão desatualizados, basta usar o comando:
npm outdated -g
Este comando te mostrará uma tabela com as versões atuais, as versões mais próximas e a última lançada. Isso é importante para que você possa avaliar o cenário antes de sair atualizando tudo sem distinção.
Reparem que além do npm, eu tenho vários pacotes desatualizados. Para atualizá-los, temos duas alternativas diferentes: um a um ou todos de uma vez. Caso você queira ser mais cuidadoso, use o comando:
npm update -g <nome_do_pacote>
Isso atualizará somente o pacote selecionado para a versão marcada como wanted. Caso você queira a mais atual, especifique a versão:
npm install -g <nome_do_pacote>@lastest.
Caso você queira atualizar tudo em uma tacada só, basta eliminar o nome do pacote do comando anterior, ou seja, executar npm update -g. No entanto, já foram reportados oficialmente problemas com esse comando de forma global. Minha recomendação é que você instale um a um.
Mas… e se encontrarmos um pacote indesejado? Um pacote antigo que não faz mais sentido ser usado? Como eliminá-lo?
Eliminando pacotes
O processo de desinstalação também é bastante simples. No caso eu queria remover o pacote jshint. Para isso, basta executar: npm uninstall -g jshint
Conclusão
O npm é uma ferramenta extraordinária mas que nem sempre deixa as coisas tão claras como deveria. Neste artigo vimos como listar, atualizar e excluir pacotes instalados de forma global na máquina. Lembrando que é possível que ainda existam problemas na atualização global de pacotes quando feita para todos os pacotes de uma vez. Em todos os outros casos, o uso realmente não tem segredo, basta executá-los.
Se tratando de node e suas dependências, tenho certeza que sua máquina agradecerá se você remover algumas delas. 😉