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 éxito

En 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.

Table
  1. Empezando
  2. Instalación del complemento Node.js
  3. Instalación de una versión del lenguaje de programación
  4. Establecer una versión
    1. Global
    2. Caparazón
    3. Local
  5. Soporte heredado
  6. Actualización de complementos
  7. alternativas a asdf
  8. Conclusión
  9. Solo el monitor 200s falló y las solicitudes de red fueron lentas en producción

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 Rust
clon 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

¿Qué es DesignOps? Conceptos básicos de DesignOps
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 Zshy Fishshells.

Ahora, cierra la terminal e inicia una nueva. Asegurémonos de que asdf esté instalado escribiendo asdfen la línea de comandos.

Una guía para realizar una revisión posterior a la acción (AAR) eficaz

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 reshimcomando, 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-versionsHome



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 currentel 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ó, shellestablece 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   

localescribe 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 -vasdf install nodejsasdf 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 asdfversió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