Skip to content
Latchkey

asdf vs nvm: Qual gerenciador de versões para CI?

O nvm gerencia apenas versões do Node; o asdf gerencia muitas linguagens a partir de uma única ferramenta e um único arquivo .tool-versions.

O nvm é um gerenciador de versões do Node focado, guiado pelo .nvmrc. O asdf é um gerenciador de versões multilinguagem que lida com Node, Python, Ruby e mais via plugins, fixados em um único arquivo .tool-versions.

asdfnvm
Linguagens gerenciadasMuitas (plugins)Apenas Node
Arquivo de pin.tool-versions.nvmrc
Melhor paraRepos poliglotasRepos só de Node
Uso em CIInstalar plugins por linguagemGeralmente via setup-node
Peso do setupMais pesado (plugins)Leve

No CI

Para um repo só de Node, o nvm (ou o setup-node da GitHub lendo o .nvmrc) é a forma mais leve de fixar uma versão. Para repos poliglotas, o asdf fixa cada linguagem em um único arquivo .tool-versions, então uma única ferramenta garante versões consistentes de Node, Python e Ruby entre local e CI. O asdf adiciona setup por plugin, mas elimina a necessidade de vários gerenciadores de versão separados.

Fixe e faça cache

Commite o .tool-versions ou o .nvmrc para que o CI use a versão local exata, e faça cache dos toolchains instalados quando possível. A instalação do toolchain roda nos runners de CI; runners gerenciados mais rápidos encurtam o setup a frio quando várias linguagens precisam ser instaladas.

O veredito

Repo só de Node querendo setup mínimo: nvm (ou setup-node com .nvmrc). Repo poliglota querendo uma ferramenta para cada linguagem: asdf com um .tool-versions commitado. Fixe o arquivo de versão de qualquer forma para um CI reproduzível.

Guias relacionados