NPM - Atualizações e conflitos

Utilitários de npm para facilitar na manutenção do vosso projeto.

A instalação/remoção e manutenção de dependências de npm pode ser um pouco confuso.

Grande parte dos projetos web, hoje em dia, utilizam o npm para o bootstrap dos mesmos.

Muitas das vezes não temos noção das dependências que são usadas para iniciar um simples site estático, como com o NextJS ou o Create-react-app.

À medida que vamos desenvolvendo a nossa aplicação web, surge a necessidade de instalar alguma dependência.

Com isto o projeto cresce e torna-se cada vez mais complexo, até ao ponto em que ocorre a necessidade de atualizar algum pacote.

npm-check

Existem centenas de utilitários para ajudar na verificação e atualização de pacotes de npm, de todos os pacotes que tive a oportunidade de exprimentar, o npm-check destaca-se pela simplicidade e eficiência, na sua utilização.

A instalação passa por instalar globalmente o pacote:

npm install -g npm-check
npm install -g npm-check

Agora, em qualquer projeto npm podem executar o comando:

npm-check
npm-check

Isto resulta em algo do género:

npm-check

Ficamos a saber que, 2 dependências têm atualizações disponiveis, mas que são um pouco diferentes.

A dependência inquirer tem uma atualização ao nível de uma Patch release ou Minor release, o que significa que, muito provavelmente não ocorrerá nenhum problema de compatibilidade, com o código atual.

A dependência husky já poderá criar vários problemas, pois sendo uma Major release, é possivel que a implementação e o uso da mesma tenha sido alterado.

A explicação sobre cada um dos termos encontra-se aqui Semantic Versioning.

Com isto, como podemos proceder à atualização das mesmas?

O npm-check pode ser invocado com o parâmetro -u, o que permite escolher quais as dependências a atualizar, como mostra o exemplo:

npm-check_-u

Com o espaço alterados o estado da seleção da dependência, navegando com as setas, e o Enter inicia a instalação dos selecionados.

Desta forma, conseguimos ter um maior controlo das dependências e das possiveis atualizações, bem como o que pode ou não induzir em problemas, na atualização das mesmas.

npm ls

Quando instalamos um pacote de npm, a própria dependência pode ou não ter outras dependências, isto faz com que, num projeto complexo, possam existir várias versões, da mesma dependência instalado.

Por vezes a dependência em questão pode sofrer algum tipo de conflito, quando várias versões se encontram em execução em simultâneo.

O npm permite verificar esta árvore de dependências, com o seguinte comando:

npm ls
npm ls

O comando irá retornar algo do género:

npm-ls

Com este resultado, é possivel percebe que, existem várias dependências duplicadas, em que o npm instala apenas uma vez, indicado pelo deduped.

Caso exista a necessidade de utilizar uma nova dependência, conseguimos saber se existe e qual a versão, que se encontra no projeto.

Ajuda também a perceber qual o pacote responsável por usar alguma versão desatualizada.

programação