Skip to main content

Domine o gerenciamento de versões do Node.js e de fontes de registro do npm como um profissional

Escrito por

Juan Picado

Node How even quick async functions can block the Event Loop starve tumb

28 de agosto de 2019

0 minutos de leitura

Dando continuidade ao guia com 10 boas práticas de segurança para npm que publicamos no início deste ano, quero explorar melhor como facilitar a alternância entre diferentes versões do Node.js e entre diferentes registros do npm durante o desenvolvimento.

Gerenciador de versões do Node

Ao desenvolver aplicações Node.js, talvez você precise instalar várias versões do Node.js para dar conta das tarefas do dia a dia. Isso pode acontecer, por exemplo, quando você precisa corrigir um bug em produção ou alternar entre projetos. Fazer isso manualmente sempre dá bastante trabalho — e existe um jeito melhor.

O Node Version Manager (nvm) é uma ferramenta que permite alternar entre diferentes versões do Node.js, reduzindo o trabalho necessário para reproduzir bugs de produção em ambientes de desenvolvimento.

A instalação padrão só é compatível com ambientes macOS e Linux. Se você usa Windows, confira o nvm-windows, que deve atender às suas necessidades.

Com a CLI, você pode instalar qualquer versão do Node.js executando o seguinte comando:


nvm install  8.9.4
nvm install node   # nvm install the latest release
nvm install --lts  # nvm install the latest LTS release

Foi fácil! Agora, vamos ver alguns cenários comuns em que o NVM pode ajudar:

  • Às vezes, alguns integrantes da equipe usam versões do Node.js diferentes das dos demais. Isso, porém, é um erro comum que pode causar problemas, como mesclar código que não é compatível com a versão do Node.js usada pelo restante da equipe. Para garantir que todos usem a mesma versão, a equipe pode implementar o arquivo `.nvmrc`.Por exemplo:

    $ echo "10" > ~/.nvmrc

    Depois que o arquivo for criado, sempre que alguém da equipe executar nvm install, será usada por padrão a versão especificada nele. Isso também impede que integrantes contribuam usando uma versão diferente. Assim, por exemplo, você evita enviar recursos incompatíveis do Node.js ou usar sintaxe que possa comprometer o funcionamento do seu app.

  • Precisa reproduzir um bug em uma versão mais antiga ou mais recente do Node.js do que a que você tem instalada? Sem o NVM, é trabalhoso manter várias versões do npm instaladas globalmente ao mesmo tempo, por causa das instalações manuais. Com o NVM, basta executar outro comando `install` para usar versões diferentes em paralelo. Pronto! Veja o exemplo abaixo.

Quando você instala várias versões do Node.js, cada uma com diversos módulos globais do npm, precisa reinstalar todos esses módulos sempre que troca de versão do Node.js.

Veja uma solução rápida:

$ nvm install 10 --reinstall-packages-from=8

Gerenciador de registros do NPM

O NPM Registry Manager é outra ferramenta útil para ter à mão se você usa vários registros — algo comum em ambientes corporativos ou ao usar uma ferramenta como o verdaccio em um registro privado local para uso pessoal. Com o lançamento do registro de pacotes do GitHub, essa ferramenta se tornou ainda mais útil e comum.

O NRM oferece suporte nativo a vários registros, incluindo:

$ nrm use cnpm

Para mais dicas de produtividade e segurança para npm, confira nosso guia com 10 boas práticas de segurança para npm.

Mantenha-se seguro!

Publicado em:

Leia mais

Live Stream

Agentes de Remediação, Desmistificados: Por Que Corrigir é Melhor do que Encontrar

Veja como o Remediation Agent da Snyk usa inteligência de segurança, análise de explorabilidade e validação para transformar vulnerabilidades em pull requests prontos para merge.

feature insights context
Blog

Por dentro do comprometimento do keyv npm: malware no preinstall, procedência confiável e hooks de IDE

O keyv 6.0.0 e outras dez versões do npm distribuíram malware executado durante a instalação. Confira as versões afetadas, os hashes, as etapas de detecção e a ordem segura de correção.

feature ai ide dark
Blog

Uma primeira visão do Evo Agentic AppSec: remediação agentiva e defesa contra código malicioso

Conheça os primeiros recursos de Agentic AppSec da Snyk: um agente de remediação autônomo que corrige vulnerabilidades e uma defesa contra código malicioso que bloqueia pacotes arriscados antes que sejam lançados.