Administrar versiones de Node.js usando asdf

Nota del editor: Este artículo fue actualizado por última vez por Rosario De Chiara el 22 de abril de 2024 para actualizar los bloques de código basados en Node.js v22, brindar una descripción general del ecosistema de complementos asdf y presentar algunas herramientas alternativas de administración de paquetes como nvm y Volta.
Al trabajar con varios proyectos a la vez, es posible que necesite diferentes versiones del lenguaje de programación. Esto obliga a desinstalar y reinstalar la versión correcta de cada lenguaje, lo que supone una pérdida de tiempo.
Afortunadamente, cambiar entre diferentes versiones puede ser fácil con administradores de versiones como Node Version Manager, rbenv para Ruby o pyenv para Python.
Estas son de gran ayuda, pero si necesita administrar e instalar varias herramientas para su proyecto multilingüe, puede resultar engorroso. En su lugar, puede usar asdf para administrar varias versiones de entorno de ejecución, gestionando todas las versiones de idioma que utiliza con una sola herramienta CLI. asdf es un gestor de versiones extensible compatible con varios idiomas, como Ruby, Node.js, Elixir, Erlang, Python y más, a la vez. Puede cambiar entre varias versiones de idioma, tanto globalmente como por directorio.
Una guía para las métricas de éxitoEn este artículo, aprenderemos todo lo que necesita para trabajar con asdf y Node, incluido cómo configurar y actualizar asdf en su máquina local, e instalar, actualizar y eliminar el complemento Node.
Empezando
Para comenzar a utilizar asdf , primero necesitamos instalar algunas dependencias como coreutils
, curl
, y git
. asdf usa estas dependencias para instalar diferentes idiomas.
Ejecute los siguientes comandos de instalación:
brew install coreutils curl git # en macOS con Homebrewsudo apt install curl git # en Linux
La documentación de asdf recomienda clonar desde el repositorio Git, de la siguiente manera:
Explorando Nushell, un shell multiplataforma impulsado por Rustclon git https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
Para instalar asdf, agréguelo a su shell. Puede consultar otros métodos de instalación en la documentación.
Usaré el método Bash y Homebrew (MacOS). Pero antes de pasar a la acción, veamos la superposición entre asdf y brew (y otros gestores de paquetes).
Asdf y brew (o choco, por ejemplo) son herramientas de gestión de paquetes, pero sus funciones son ligeramente diferentes: permiten la instalación y gestión de paquetes de software. Asdf se especializa en la gestión de versiones en tiempo de ejecución de varios lenguajes y frameworks de programación, mientras que brew (abreviatura de Homebrew) es un gestor de paquetes general para macOS y Linux. Choco realiza la misma tarea en Windows.
Añade a tu carrito lo siguiente:asdf.sh
~/.bash_profile
echo - e "n. $(brew --prefix asdf)/libexec/asdf.sh" ~/.bash_profile
Luego, configure la finalización de Bash:
echo - e "n. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash" ~/ .bash_profile
Puedes ver tu me gusta así:~/.bash_profile
gato ~/.bash_profile
asdf también soporta Zsh
y Fish
shells.
Ahora, cierra la terminal e inicia una nueva. Asegurémonos de que asdf esté instalado escribiendo asdf
en la línea de comandos.
Instalación del complemento Node.js
En asdf, cada idioma cuenta con un complemento . Ofrecen cientos de complementos, pero si no encuentras el que necesitas, puedes crear el tuyo propio.
Los plugins incluyen más que solo lenguajes; asdf también admite bases de datos, lo que amplía las posibilidades de la herramienta. Aquí describimos el ecosistema de plugins para mostrar brevemente lo que se puede lograr.
En primer lugar, la extensa lista de plugins demuestra que, independientemente de lo complejo que sea tu framework o lenguaje, asdf probablemente lo cubra. Y, si lo deseas, existe un framework sólido para desarrollar nuevos plugins que se adapten a tus necesidades . Los plugins se pueden clasificar en dos familias: los proporcionados directamente por el equipo de asdf y los desarrollados por la comunidad. En la primera categoría, denominada Plugins de Origen, se encuentran Elixir , Erlang , Ruby y Node.js , que es el tema central de este artículo.
Los complementos se instalan con el siguiente comando:
complemento asdf agregar nombre
Antes de instalar el plugin de Node, debemos instalar GnuPG para verificar la autenticidad del paquete. Cada plugin tiene requisitos diferentes, que puedes consultar en su repositorio de GitHub.
Una vez instalado, podrás ver una lista de complementos instalados como la siguiente:
lista de complementos de asdf
Instalación de una versión del lenguaje de programación
asdf enumera todas las versiones disponibles de cada lenguaje de programación; al momento de escribir este artículo, hay un total de 735 versiones de Node que podemos instalar.
Puede ver una lista de versiones de Node con lo siguiente:
asdf lista todos los node.js | wc - l # imprime 735
Para instalar una versión específica de Node, ejecute lo siguiente:
Instalación de asdf en nodejs 22.1.0
Si encuentra algunos errores al instalar una versión de Node, pruebe este comando:
asdf reshim node.js
Podría aparecer un error aquí sobre reshim
. Sin ejecutar el reshim
comando, el paquete npm no estará disponible en su ruta:
Comando desconocido : `asdf reshim nodejs 22.1.0` / usr / local / Cellar / asdf / 0.14 . 0_1 / libexec / bin / asdf : línea 82 : /Users/ su - nombre de usuario /.asdf/ lib / commands / command - help . bash : No existe el archivo o directorio
Puede ver qué versiones tiene instaladas ejecutando lo siguiente:
asdf lista todos los node.js
Para instalar la última versión de Node, ejecute:
asdf instala la última versión de nodejs
También podemos instalar la última versión de Node que comience con una cadena determinada:
# asdf install nombre latest:versión asdf install nodejs latest: 16
Establecer una versión
Las versiones del lenguaje de programación se pueden configurar en tres niveles: global, en el shell actual o localmente.
Global
Puedes configurar una versión global predeterminada de Node para que persista en cualquier shell nuevo. Esto añadirá o actualizará una línea en el archivo del directorio..tool-versions
Home
Para configurar una versión global o predeterminada de Node, ejecute lo siguiente:
# asdf global nombre versión [versión...] asdf global nodejs 22.1 . 0 asdf global nodejs latest
Ahora puedes verificar la versión actual de asdf con asdf current
el comando. En mi caso, muestra la última versión de Node, 22.1.0:
( base ) ➜ ~ asdf actual nodejs 22.1.0 / inicio / su - nombre de usuario /. versiones de la herramienta
Si no hay una versión listada para la ejecución de una herramienta, se devolverá un error. Con este comando, podemos ver la resolución de la herramienta y la versión, o su ausencia, desde el directorio actual.
Los valores predeterminados globales se gestionan en . Puede ver su contenido ejecutando lo siguiente:$HOME/.tool-versions
cat $HOME /. herramienta - versiones
He configurado la versión global del nodo en la última versión, lo cual puedo verificar ejecutando lo siguiente:
(base) ➜ ~ nodo - v v22.1.0
Caparazón
Si desea utilizar la versión Node solo en el shell actual, ejecute lo siguiente:
# asdf shell nombre versión [versión...] asdf shell nodejs 14.17 . 6 asdf shell nodejs último
Esta versión de Node solo se ejecutará en la sesión de shell actual, por lo que cuando cierre la sesión, esta versión no estará disponible.
Bajo el capó, shell
establece la versión en una variable de entorno nombrada solo para la sesión de shell actual:ASDF_${LANG}_VERSION
ASDF_NODEJS_VERSION = 14.17 . 6 nodo -- versión
Local
También puedes ejecutar una versión específica de Node en función de un solo proyecto configurando la versión localmente:
asdf local nombre versión [ versión ...] asdf local nodejs 14.17 . 6 asdf local nodejs más reciente
local
escribe la versión en .$PWD/.tool-versions
Puede verificar la versión de Node para entornos locales y de shell ejecutando . Para configurar una versión local basada en un solo proyecto, primero instale la versión que desea usar y ejecute . Esto creará un archivo con la versión de Node seleccionada.node -v
asdf install nodejs
asdf local nodejs
.tool-versions
Desinstalar una versión
Para desinstalar una versión, utilice este comando:
# asdf uninstall nombre versión asdf uninstall nodejs 14.17 . 6 asdf uninstall nodejs latest
Soporte heredado
Adoptar un nuevo gestor de versiones puede llevar tiempo en los equipos, por lo que asdf permite volver a los archivos de versiones anteriores. Si lo desea, puede seguir usando su gestor de versiones preferido .
Para habilitar la compatibilidad con legado, agregue un archivo al directorio de inicio ( ) y agregue la siguiente configuración:.asdfrc
$HOME/.asdfrc
legacy_version_file = sí # archivo .asdfrc
Al configurar los archivos de versiones heredadas en yes
, asdf podrá leer otros archivos del administrador de versiones como , o ..nvmrc
.node-versions
.ruby-versions
Actualización de complementos
En algún momento, podrías necesitar actualizar los complementos. Puedes hacerlo ejecutando este comando:
Actualización del complemento asdf : todo
Hasta ahora, hemos dependido de asdf para gestionar múltiples entornos de desarrollo. Para mantener la asdf
versión actualizada, ejecute el siguiente comando:
actualización de asdf # a través de gitbrew actualización de asdf # a través de homebrew
Si desea desinstalar asdf, puede seguir la documentación.
alternativas a asdf
El tema de este artículo es asdf, por supuesto, pero resulta útil tener una lista de alternativas que resuelvan (más o menos) los mismos problemas que asdf. A continuación, resumimos brevemente algunas de ellas:
- NVM (Administrador de versiones de nodo):La herramienta más utilizada para gestionar versiones de Node.js. Permite instalar, cambiar y gestionar fácilmente múltiples versiones de Node.js. Es compatible con Linux, macOS y Windows (tanto con el Subsistema de Windows para Linux como con Windows).
- n (Gestión de versiones de Node.js):Una alternativa a NVM con un enfoque más minimalista. Proporciona comandos sencillos para instalar, listar y cambiar versiones de Node.js. Generalmente es más ligero y rápido en comparación con NVM.
- fnm (Administrador de nodos rápido):Un gestor de versiones de Node.js rápido y ligero. Diseñado para ser rápido y eficiente, es compatible con múltiples plataformas como Linux, macOS y Windows.
- Tiempo:Un gestor de herramientas JavaScript que gestiona versiones de Node.js y otras herramientas JavaScript como npm, Yarn y pnpm. Está diseñado para ser rápido y ofrece un enfoque específico para el entorno de Node.js y herramientas relacionadas.
Estas herramientas ofrecen diferentes funciones, pero todas permiten instalar, administrar y cambiar entre diferentes versiones de Node.js. Tu preferencia dependerá de tu entorno y necesidades.
Por ejemplo, NVM se usa ampliamente y cuenta con un buen soporte, n es conocido por su simplicidad y velocidad, fnm es ligero y Volta ofrece funciones adicionales como la gestión de versiones de npm y Yarn. Si necesita gestionar varios lenguajes con una sola herramienta, asdf es una excelente opción. Pero si se centra en un lenguaje en particular, quizás le resulten más adecuadas las herramientas especializadas.
El escenario donde asdf destaca especialmente es cuando se desea usar diferentes lenguajes de programación y gestionar sus versiones mediante una interfaz única. En este caso, asdf es la herramienta ideal, ya que ofrece un único comando para gestionar versiones y frameworks.
Conclusión
asdf es una herramienta excelente para programadores políglotas. Permite una instalación sencilla y cambiar fácilmente entre versiones de varios idiomas, ahorrando tiempo para lo importante. ¡No olvides leer la Balada de asdf!
Ahora puedes instalar tantos idiomas como quieras. En lugar de usar varios gestores de paquetes, puedes probar asdf para gestionarlos todos.
¿Y tú? ¿Usas asdf? ¿Qué tal tu experiencia?
Solo el monitor 200s falló y las solicitudes de red fueron lentas en producción
Implementar una aplicación web o un sitio web basado en Node es la parte fácil. Asegurarse de que la instancia de Node siga proporcionando recursos a la aplicación es la parte más difícil. Si te interesa garantizar que las solicitudes al backend o a servicios de terceros se realicen correctamente, prueba LogRocket .
Si quieres conocer otros artículos parecidos a Administrar versiones de Node.js usando asdf puedes visitar la categoría Guias.
Entradas Relacionadas