Instalación de Node.js en el Subsistema de Windows para Linux (WSL2)
Para aquellos que prefieren usar Node.js en un entorno de Linux, esta guía le ayudará a instalar Node.js en el Subsistema de Windows para Linux (WSL 2 es la versión recomendada).
Tenga en cuenta lo siguiente al decidir dónde instalar y si desarrollar con Node.js en un entorno nativo de Windows frente a linux (WSL 2):
- Nivel de habilidad: Si no está familiarizado con el desarrollo con Node.js y quiere empezar rápidamente para poder aprender, instale Node.js en Windows. La instalación y el uso de Node.js en Windows proporcionarán un entorno menos complejo para principiantes que el uso de WSL.
- La herramienta cliente de línea de comandos: Si prefiere PowerShell, use Node.js en Windows. Si prefiere Bash, use Node.js en Linux (WSL 2).
- servidor de producción: si tiene previsto implementar la aplicación de Node.js en Windows Server, use Node.js en Windows. Si tiene previsto realizar la implementación en un servidor Linux, use Node.js en Linux (WSL 2). WSL permite instalar la distribución de Linux preferida (con Ubuntu como valor predeterminado), lo que garantiza la coherencia entre el entorno de desarrollo (donde se escribe código) y el entorno de producción (el servidor donde se implementa el código).
- Velocidad de rendimiento y compatibilidad con las llamadas del sistema: se debate continuamente sobre el rendimiento de Linux frente a Windows, pero la clave al usar una máquina Windows es mantener los archivos del proyecto de desarrollo en el mismo sistema de archivos en el que ha instalado Node.js. Si instala Node.js en el sistema de archivos de Windows, mantenga los archivos en una unidad de Windows (por ejemplo, C:/). Si instala Node.js en una distribución de Linux (como Ubuntu), mantenga los archivos del proyecto en el directorio del sistema de archivos de Linux asociado a la distribución que está usando. (Escriba
explorer.exe .
desde la línea de comandos de distribución de WSL para examinar el directorio mediante el Explorador de archivos de Windows). - Contenedores de Docker: si desea usar contenedores de Docker para desarrollar su proyecto en Windows, se recomienda instalar Docker Desktop en Windows. Para usar Docker en un área de trabajo de Linux, consulte configuración de Docker Desktop para Windows con WSL 2 para evitar tener que mantener scripts de compilación de Linux y Windows.
Instalación del subsistema de Windows para Linux
Consulte la documentación de instalación de WSL si tiene previsto usar un entorno de desarrollo de Linux con Node.js. Estos pasos incluyen elegir una distribución de Linux (Ubuntu es el valor predeterminado) y la versión del Subsistema de Windows para Linux (WSL 2 es la versión predeterminada y recomendada). Puede instalar varias distribuciones de Linux si lo desea.
Una vez que haya instalado WSL 2 y una distribución de Linux, abra la distribución de Linux (puede encontrarse en la lista de terminales de Windows o en el menú Inicio de Windows) y compruebe la versión y el nombre de código mediante el comando: lsb_release -dc
.
Se recomienda actualizar la distribución de Linux con regularidad, incluida inmediatamente después de instalarla, para asegurarse de que tiene los paquetes más recientes. Windows no controla automáticamente esta actualización. Para actualizar la distribución, use el comando : sudo apt update && sudo apt upgrade
.
Windows Terminal
Terminal Windows es un shell de línea de comandos mejorado que permite ejecutar varias pestañas, con el fin de que pueda cambiar rápidamente de línea de comandos de Linux, símbolo del sistema de Windows, PowerShell, CLI de Azure, o lo que prefiera usar. También puede crear enlaces de teclas personalizados (teclas de método abreviado para abrir o cerrar pestañas, copiar y pegar, etc.), usar la característica de búsqueda, personalizar el terminal con temas (combinaciones de colores, estilos de fuente y tamaños, imagen de fondo/desenfoque/transparencia), etc. Obtenga más información en la documentación de Terminal Windows.
Instalación de nvm, node.jsy npm
Además de elegir si se va a instalar en Windows o WSL, hay opciones adicionales para realizar al instalar Node.js. Se recomienda usar un administrador de versiones a medida que las versiones cambian muy rápidamente. Es probable que tenga que cambiar entre varias versiones de Node.js en función de las necesidades de diferentes proyectos en los que esté trabajando. Node Version Manager, más comúnmente denominado nvm, es la manera más popular de instalar varias versiones de Node.js. Le guiaremos por los pasos para instalar nvm y, a continuación, lo usaremos para instalar Node.js y el Administrador de paquetes de Node (npm). Hay administradores de versiones alternativos para tener en cuenta, que también se tratan en la sección siguiente.
Importante
Siempre se recomienda quitar las instalaciones existentes de Node.js o npm del sistema operativo antes de instalar un administrador de versiones, ya que los diferentes tipos de instalación pueden provocar conflictos extraños y confusos. Por ejemplo, la versión de Node que se puede instalar con el comando apt-get
de Ubuntu está actualmente obsoleta. Para obtener ayuda con la eliminación de instalaciones anteriores, consulte Cómo quitar nodejs de ubuntu).
Para obtener la información más reciente sobre la instalación de NVM, consulte Instalación y actualización en el repositorio nvM en GitHub.
Abra la línea de comandos de Ubuntu (o la distribución que prefiera).
Instale cURL (una herramienta que se usa para descargar contenido de Internet en la línea de comandos) con:
sudo apt-get install curl
Instala nvm con:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
Nota
La instalación de una versión más reciente de NVM con cURL reemplazará la anterior, dejando la versión de Node que ha usado NVM para instalar intacta. Para obtener más información, consulte la página del proyecto de GitHub de para obtener la información de versión más reciente sobre NVM.
Para comprobar la instalación, escriba:
command -v nvm
... esto debe devolver "nvm", si recibe "comando no encontrado" o ninguna respuesta, cierre el terminal actual, vuelva a abrirlo e inténtelo de nuevo. Obtenga más información en el repositorio de github de nvm.Enumere qué versiones de Node están instaladas actualmente (no debe ser ninguna en este momento):
nvm ls
Instale ambas las versiones actuales y las versiones LTS estables de Node.js. En un paso posterior, aprenderá a cambiar entre versiones activas de Node.js con un comando
nvm
.- Instale la versión ltS estable actual de Node.js (recomendada para aplicaciones de producción):
nvm install --lts
- Instale la versión actual de Node.js (para probar las últimas características y mejoras de Node.js, pero es más probable que tenga problemas):
nvm install node
- Instale la versión ltS estable actual de Node.js (recomendada para aplicaciones de producción):
Enumerar las versiones de Node instaladas:
nvm ls
... ahora debería ver las dos versiones que acaba de instalar.Compruebe que Node.js está instalado y que actualmente es la versión predeterminada utilizando
node --version
. A continuación, compruebe que también tiene npm, con:npm --version
(también puede usarwhich node
owhich npm
para ver la ruta de acceso usada para las versiones predeterminadas).Para cambiar la versión de Node.js que desea usar para un proyecto, cree un directorio de proyecto
mkdir NodeTest
, luego acceda al directoriocd NodeTest
, y luego ingresenvm use node
para cambiar a la versión actual, onvm use --lts
para cambiar a la versión LTS. También puede usar el número específico para cualquier versión adicional que haya instalado, comonvm use v8.2.1
. (Para enumerar todas las versiones de Node.js disponibles, use el comando :nvm ls-remote
).
Si usa NVM para instalar Node.js y NPM, no debe usar el comando SUDO para instalar nuevos paquetes.
Administradores de versiones alternativos
Aunque nvm es actualmente el administrador de versiones más popular para node, hay algunas alternativas que se deben tener en cuenta:
- n es una alternativa de
nvm
de larga duración que logra lo mismo con comandos ligeramente diferentes y se instala a través denpm
en lugar de un script de Bash. - fnm es un administrador de versiones más reciente, que se dice que es mucho más rápido que
nvm
. (También usa Azure Pipelines). - Volta es un nuevo administrador de versiones del equipo de LinkedIn que reclama una mayor velocidad y soporte multiplataforma.
- asdf-vm es una sola CLI para varios lenguajes, como ike gvm, nvm, rbenv & pyenv (y mucho más) en uno.
- nvs (conmutador de versiones de Node) es una alternativa
nvm
multiplataforma con la capacidad de integrarse con VS Code.
Instalación de Visual Studio Code
Se recomienda usar Visual Studio Code con el paquete de extensión de desarrollo remoto para proyectos de Node.js. Esto divide VS Code en una arquitectura de "cliente-servidor", con el cliente (la interfaz de usuario de VS Code) que se ejecuta en el sistema operativo Windows y en el servidor (el código, Git, complementos, etc.) que se ejecuta "de forma remota" en la distribución de Linux de WSL.
Nota
Este escenario "remoto" es un poco diferente al que puede estar acostumbrado. WSL admite una distribución de Linux real en la que se ejecuta el código del proyecto, independientemente del sistema operativo Windows, pero aún en la máquina local. La extensión Remote-WSL se conecta con el subsistema de Linux como si fuera un servidor remoto, aunque no se está ejecutando en la nube... todavía se ejecuta en la máquina local, en el entorno de WSL que ha habilitado para ejecutarse junto con Windows.
- El IntelliSense y el linting basados en Linux son compatibles.
- El proyecto se compilará automáticamente en Linux.
- Puede usar todas las extensiones que se ejecutan en Linux (ES Lint, NPM IntelliSense, fragmentos de código ES6, etc.).
Otros editores de código, como IntelliJ, Sublime Text, Brackets, etc. también funcionarán con un entorno de desarrollo de WSL 2 Node.js, pero es posible que no tengan el mismo tipo de características remotas que ofrece VS Code. Estos editores de código pueden tener problemas para acceder a la ubicación de red compartida de WSL (\wsl$\Ubuntu\home) y intentarán compilar los archivos de Linux mediante herramientas de Windows, lo que probablemente no sea lo que desee. La extensión Remote-WSL en VS Code maneja esta compatibilidad por usted; con otros entornos de desarrollo integrados, es posible que tenga que configurar un servidor X. Compatibilidad con ejecutar aplicaciones con interfaz gráfica de usuario en WSL (como un IDE de editor de código) estará disponible próximamente.
Los editores de texto basados en terminales (vim, emacs, nano) también son útiles para realizar cambios rápidos desde dentro de la consola. En el artículo sobre cómo elegir inteligentemente uno de estos tres editores de texto basados en terminal: Emacs, Nano o Vim no solo se explican perfectamente algunas de las diferencias entre los distintos editores, sino también cómo usar cada uno de ellos.
Para instalar VS Code y la extensión Remote-WSL:
Descargar e instalar VS Code para Windows. VS Code también está disponible para Linux, pero el Subsistema de Windows para Linux no admite aplicaciones de GUI, por lo que es necesario instalarlo en Windows. No se preocupe, todavía podrá integrarse con la línea de comandos y las herramientas de Linux mediante la extensión Remote - WSL.
Instale la extensión remota - WSL en VS Code. Esto le permite usar WSL como entorno de desarrollo integrado y controlará la compatibilidad y la ruta de acceso automáticamente. Más información.
Importante
Si ya tienes VS Code instalado, deberás asegurarte de que dispones de la versión 1.35 de mayo o una posterior a fin de poder instalar la extensión Remote-WSL. No te recomendamos que uses WSL en VS Code sin la extensión Remote-WSL, ya que perderás la compatibilidad con Autocompletar, la depuración, la detección de errores, etc. Dato curioso: Esta extensión de WSL se instala en $HOME/.vscode-server/extensions.
Extensiones útiles de VS Code
Aunque VS Code incluye muchas características listas para usar para el desarrollo de Node.js, hay algunas extensiones útiles que podría considerar instalar disponibles en el paquete de extensiones de Node.js. Instálalos todos o elige cuál te parece el más útil.
Para instalar el paquete de extensiones de Node.js:
Abra la ventana Extensiones (Ctrl+Mayús+X) en VS Code.
La ventana Extensiones ahora se divide en tres secciones (porque instaló la extensión Remote-WSL).
- "Local - Installed": las extensiones instaladas para su uso con el sistema operativo Windows.
- "WSL:Ubuntu-18.04-Installed": las extensiones instaladas para su uso con el sistema operativo Ubuntu (WSL).
- "Recomendado": extensiones recomendadas por VS Code en función de los tipos de archivo del proyecto actual.
En el cuadro de búsqueda de la parte superior de la ventana Extensiones, escriba: paquete de extensiones de nodo (o el nombre de cualquier extensión que busque). La extensión se instalará para las instancias locales o WSL de VS Code, dependiendo de dónde tengas abierto el proyecto actual. Puede indicarlo seleccionando el vínculo remoto en la esquina inferior izquierda de la ventana de VS Code (en verde). Le dará la opción de abrir o cerrar una conexión remota. Instale las extensiones de Node.js en el entorno "WSL:Ubuntu-18.04".
Algunas extensiones adicionales que puede considerar incluyen:
- JavaScript Debugger: una vez que haya terminado de desarrollar en el lado servidor con Node.js, deberá desarrollar y probar el lado cliente. Esta extensión es un depurador de JavaScript basado en DAP. Depura Node.js, Chrome, Edge, WebView2, extensiones de VS Code y más.
- Keymaps from other editors: estas extensiones pueden ayudarle a sentirse como en casa con su entorno en caso de que realice la transición desde otro editor de texto (como Atom, Sublime, Vim, eMacs, Notepad++, etc.).
- Sincronización de Configuraciones: Te permite sincronizar la configuración de VS Code en diferentes instalaciones mediante GitHub. Si trabaja en diferentes máquinas, esto ayuda a mantener el entorno coherente entre ellas.
Configuración de Git (opcional)
Para configurar Git para un proyecto de Node.js en WSL, consulte el artículo Introducción al uso de Git en el Subsistema de Windows para Linux en la documentación de WSL.