Mover su desarrollo de JavaScript a Bash en Windows

Acerca del autor

Burke Holland es un desarrollador front-end que vive en Nashville, TN; la mejor ciudad del mundo. Disfruta mucho de JavaScript porque es la única forma en la que …More aboutBurke↬

  • 24 min read
  • JavaScript
  • Saved for offline reading
  • Share on Twitter, LinkedIn
¿Amas tu terminal Bash pero también tu PC? Tal vez hayas echado el ojo a ese nuevo hardware para Surface, pero no puedes hacer el cambio sin tu terminal. Ahora puedes tener Windows y Bash. En este artículo, vamos a echar un vistazo en profundidad a cómo configurar una caja de desarrollo de Windows/Linux para el desarrollo de JavaScript.

Soy una de esas personas que no pueden vivir sin su terminal Bash. Este único hecho me ha dificultado el trabajo de frontend en Windows. Trabajo en Microsoft y estoy en un Mac. No fue hasta que salió la nueva línea de hardware Surface hace unos años que me di cuenta: Tengo que tener uno de esos.

Así que me hice con uno. Un Surface Book 2 con Windows 10 para ser exactos. Estoy redactando este artículo en él ahora mismo. ¿Y qué hay de mi dulce, dulce Bash prompt? Bueno, lo traje conmigo, por supuesto.

En este artículo, voy a echar un vistazo en profundidad a cómo la nueva tecnología en Windows 10 le permite ejecutar un terminal de Linux completo en Windows. También te mostraré mi increíble configuración de terminal (que fue nombrada «la mejor de la historia» por «mí») y cómo tú también puedes configurar tu propia máquina de desarrollo Windows/Linux.

Si has estado anhelando algo de ese hardware Surface pero no puedes vivir sin una terminal Linux, has llegado al lugar correcto.

Nota: En el momento de escribir este artículo, muchos de los elementos de este artículo requerirán que utilices o cambies a las versiones «preview» o «insiders» de varios elementos, incluyendo Windows. La mayoría de estas cosas estarán en la versión principal de Windows en algún momento en el futuro.

Subsistema de Windows para Linux (WSL)

El Subsistema de Windows para Linux, o, «WSL» es lo que le permite ejecutar Linux en Windows. Pero ¿qué es exactamente esta ciencia loca?

El WSL, en su encarnación actual, es una capa de traducción que convierte las llamadas al sistema de Linux en llamadas al sistema de Windows. Linux se ejecuta sobre la WSL. Eso significa que para tener Linux en Windows, necesitas hacer tres cosas:

  1. Habilitar la WSL,
  2. Instalar Linux,
  3. Incluir siempre tres elementos en una lista.

Como resulta, esa capa de traducción es un poco lenta – algo así como yo tratando de recordar si necesito splice o slice. Esto es especialmente cierto cuando el WSL está leyendo y escribiendo en el sistema de archivos. Eso es una especie de gran problema para los desarrolladores web, ya que cualquier npm install adecuado copiará miles de archivos en su máquina. Quiero decir, yo no sé ustedes, pero yo no voy a escribir a la izquierda mis propias cadenas.

La versión 2 de la WSL es una historia diferente. Es considerablemente más rápida que la versión actual porque aprovecha un núcleo de virtualización en Windows en lugar de utilizar la capa de traducción. Cuando digo que es «considerablemente más rápido», quiero decir mucho, mucho más rápido. Tan rápido como yo buscando en Google «splice vs slice».

Por esa razón, voy a mostrar cómo instalar el WSL 2. En el momento de escribir este artículo, eso va a requerir que estés en la build «Insider» de Windows.

Primero lo primero: sigue esta breve guía para habilitar el WSL en Windows 10 y comprueba tu número de versión de Windows.

Una vez lo tengas instalado, dale a la tecla de Windows y escribe «windows insider». Luego elige «Configuración del programa Windows Insider».

(Vista previa grande)

Tendrás un par de opciones diferentes en cuanto a qué «anillo» quieres estar. Mucha gente que conozco está en el anillo rápido. Sin embargo, yo soy un tipo precavido. Cuando era niño, me tiraba por el tobogán del parque infantil boca abajo, agarrándome a los lados. Por eso me quedo en el anillo lento. Llevo varios meses en él y no me parece más molesto ni inestable que el Windows normal.

Es una buena opción si quieres el WSL 2, pero no quieres morir en el tobogán.

(Vista previa grande)

Nota: Después de publicar este artículo, me he enterado de que el WSL 2 no está de hecho en el anillo lento. Tienes que estar en el anillo rápido para conseguirlo. Debo haber estado en el anillo rápido en algún momento en el proceso de escribir este artículo. Así que el anillo rápido es. Buena suerte en el deslizamiento!

Luego, necesitas habilitar la característica «Plataforma de Máquina Virtual» en Windows, que es requerida por la versión 2 de WSL. Para llegar a esta pantalla, pulse la tecla de Windows y escriba «características de Windows». A continuación, seleccione «Activar o desactivar las características de Windows». Seleccione «Plataforma de la máquina virtual». La opción «Subsistema de Windows para Linux» ya debería estar activada.

(Large preview)

Ahora que el WSL está activado, puedes instalar Linux. Lo haces, irónicamente, directamente desde la Windows Store. Sólo en 2019 te sugeriría que «instalaras Linux desde la tienda de Windows».

Hay varias distribuciones diferentes para elegir, pero Ubuntu va a ser la más soportada en todas las herramientas que configuraremos más adelante – incluyendo VS Code. Todas las instrucciones que vienen de aquí en adelante con asumir una instalación de Ubuntu. Si usted instala una distro diferente, todas las apuestas están apagadas.

Busca «Ubuntu» de la tienda de Windows. Habrá tres para elegir: Ubuntu, Ubuntu 18.04 y Ubuntu 16.04. A Ubuntu le gusta mucho ese número de versión menor 04, ¿no?

(Vista previa grande)

La distro «Ubuntu» (la primera en esta captura de pantalla) es la «meta versión», o más bien un marcador de posición que sólo apunta a la última versión. En este momento, es la 18.04.

He elegido la versión meta porque más adelante te mostraré cómo navegar por el sistema de archivos de Linux con el Explorador de Windows y es un poco complicado tener «Ubuntu 18.04» como nombre de unidad frente a sólo «Ubuntu».

Esta instalación es bastante rápida dependiendo de tu conexión a Internet. Es sólo alrededor de 215 megabytes, pero estoy en una conexión de gigabit por aquí y ¿cómo sabes si alguien está en una conexión de gigabit? No te preocupes, ellos te lo dirán.

Una vez instalado, ahora tendrás una aplicación «Ubuntu» en tu menú de inicio.

(Vista previa grande)

¡Si haces clic en ella, obtendrás un terminal Bash!

(Large preview)

Tómate un momento para disfrutar del milagro de la tecnología.

Por defecto, estarás corriendo en la versión 1 de WSL. Para actualizar a la versión 2, tendrá que abrir un terminal de PowerShell y ejecutar un comando.

Pulse la tecla «Windows» y escriba «Powershell».

(Large preview)

Desde el terminal de PowerShell, puede ver qué versión de la WSL tiene ejecutando wsl --list --verbose.

(Large preview)

Si te aparece la versión 1, tendrás que ejecutar el comando --set-version y especificar el nombre de la instancia (Ubuntu) y la versión que quieres (2).

wsl --set-version Ubuntu 2
(Large preview)

Esto va a tardar un poco, dependiendo de la carne que tenga tu máquina. La mía tardó «algunos minutos» más o menos. Cuando termine, estarás en la última y mejor versión del WSL.

El es tu cerebro en Linux… en Windows.

Linux no es Windows. WSL no es un prompt bash encima de un sistema operativo Windows. Es un sistema operativo completo en sí mismo con su propia estructura de carpetas y aplicaciones instaladas. Si instalas Node con el instalador de Windows, escribir node en Linux va a fallar porque Node no está instalado en Linux. Está instalado en Windows.

La verdadera magia del WSL, sin embargo, radica en la forma en que conecta a la perfección Windows y Linux para que aparezcan como un solo sistema de archivos en su máquina.

Navegación por archivos y carpetas

Por defecto, el terminal de Ubuntu le deja en su directorio de inicio de Linux (o /home/your-user-name). Puedes pasar al lado de Windows yendo a /mnt/c.

(Vista previa grande)

Nota que aquí se deniegan algunos permisos. Tendría que hacer clic con el botón derecho del ratón en el icono de Ubuntu y hacer clic en «Ejecutar como administrador» para tener acceso a estos archivos. Así es como Windows hace los permisos elevados. No hay sudo en Windows.

Lanzamiento de aplicaciones

Puedes lanzar cualquier aplicación de Windows desde la terminal de Ubuntu. Por ejemplo, puedo abrir el Explorador de Windows desde la terminal de Unbuntu.

(Large preview)

Esto también funciona a la inversa. Puedes ejecutar cualquier aplicación instalada en el lado de Linux. Aquí estoy ejecutando «fortune» instalado en Linux desde la línea de comandos de Windows. (Porque no es una instalación correcta de Linux sin fortunas aleatorias y sin sentido.)

(Large preview)

Dos sistemas operativos diferentes. Dos sistemas de archivos diferentes. Dos conjuntos diferentes de aplicaciones instaladas. ¿Ves cómo esto podría ser confuso?

Con el fin de mantener todo claro, te recomiendo que mantengas todos tus archivos y herramientas de desarrollo de JavaScript instalados en el lado de Linux de las cosas. Dicho esto, la capacidad de moverse entre Windows y Linux y acceder a los archivos de ambos sistemas es la magia central del WSL. No lo olvides, porque es lo que hace que toda esta configuración sea mejor que una caja estándar de Linux.

Configuración de su entorno de desarrollo

De aquí en adelante, voy a darle una lista de elementos de opinión para lo que creo que hace una configuración asesina de Linux en Windows. Sólo recuerda: mis opiniones son sólo eso. Opiniones. Sucede que al igual que todas mis opiniones, son 100% correctas.

Conseguir un mejor terminal

Sí, tienes un terminal cuando instalaste Ubuntu. En realidad es la consola de Windows conectada a tu distro de Linux. No es una mala consola. Puedes cambiar su tamaño, activar el copiar/pegar (en la configuración). Pero no puedes hacer cosas como pestañas o abrir nuevas ventanas. Así como mucha gente usa programas de terminal de reemplazo en Mac (yo uso Hyper), hay otras opciones para Windows también. La lista de Awesome WSL en Github contiene una lista bastante exhaustiva.

Todos esos son buenos emuladores, pero hay una nueva opción que está construida por gente que conoce Windows bastante bien.

Microsoft ha estado trabajando en una nueva aplicación llamada «Windows Terminal».

(Large preview)

Windows Terminal se puede instalar desde la Windows Store y actualmente está en modo preview. Lo he estado usando durante bastante tiempo, y tiene suficientes características y es lo suficientemente estable como para que yo le dé un respaldo completo.

La nueva Terminal de Windows cuenta con una interfaz de pestañas completa, copiar/pegar, múltiples perfiles, fondos transparentes, imágenes de fondo – incluso imágenes de fondo transparentes. Es un día de campo si te gusta personalizar tu terminal, y vine a ganar esta carrera de sacos.

Aquí está mi terminal actual. Vamos a dar un paseo por algunos de los ajustes importantes aquí.

(Vista previa grande)

El terminal de Windows es bastante personalizable. Al hacer clic en la flecha «⌄» en la parte superior izquierda (junto al signo «+») se accede a «Configuración». Esto abrirá un archivo JSON.

Enlazar Copiar/Pegar

En la parte superior del archivo están todos los enlaces de teclas. Lo primero que hice fue mapear «copiar» a Ctrl + C y pegar a Ctrl + V. ¿Cómo si no voy a copiar y pegar comandos de Stack Overflow que no entiendo?

{ "command": "copy", "keys": },{ "command": "paste", "keys": },

El problema es que Ctrl + C ya está mapeado a SIGINT, o el comando Interrupt/kill en Linux. Hay un montón de terminales por ahí para Windows que manejan esto mediante la asignación de Copiar / Pegar a Ctrl + Shift + C y Ctrl + Shift + V, respectivamente. El problema es que copiar/pegar es Ctrl + C / Ctrl + V en cualquier otro lugar de Windows. Sólo seguí presionando Ctrl + C en el terminal una y otra vez tratando de copiar cosas. No podía dejar de hacerlo.

El terminal de Windows maneja esto de manera diferente. Si tienes un texto resaltado y presionas Ctrl + C, copiará el texto. Si hay un proceso en ejecución, sigue enviando el comando SIGINT hacia abajo y lo interrumpe. Esto significa que puede asignar con seguridad Ctrl + C / Ctrl + V a Copiar/Pegar en el Terminal de Windows y no interferirá con su capacidad de interrumpir procesos.

¿Quién pensó que Copiar/Pegar podría causar tantos dolores de cabeza?

Cambiar el perfil predeterminado

El perfil predeterminado es lo que aparece cuando se abre una nueva pestaña. Por defecto, es Powershell. Usted querrá desplazarse hacia abajo y encontrar el perfil de Linux. Este es el que abre wsl.exe -d Ubuntu. Copie su GUID y péguelo en la configuración defaultProfile.

He movido estas dos configuraciones para que estén justo al lado de la otra para que sea más fácil de ver:

(Vista previa grande)

Configurar el fondo

Me gusta que mi fondo sea de un color sólido oscuro con un logotipo plano en la esquina derecha. Hago esto porque quiero que el logotipo sea brillante y visible, pero no en el camino del texto. Este lo hice yo mismo, pero hay una gran colección de imágenes planas para elegir en Simple Desktops.

El fondo se establece con la propiedad backgroundImage:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(Vista previa grande)

También notarás un ajuste llamado «acrílico». Esto es lo que le permite ajustar la opacidad del fondo. Si tienes un color de fondo sólido, esto es bastante sencillo.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Vista previa grande)

También puedes hacer esto con una imagen de fondo, combinando el ajuste arcylicOpacity con el backgroundImageOpacity:

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Vista previa grande)

Para mi tema, la transparencia hace que todo parezca apagado, así que mantengo el useAcrylic ajustado a false.

Cambiar la fuente

El equipo que construye el Terminal de Windows también está trabajando en una nueva fuente llamada «Código Cascadia». No está disponible en el momento de escribir este artículo, por lo que se obtiene la fuente predeterminada de Windows en su lugar.

La fuente predeterminada en el Terminal de Windows es «Consolas». Esta es la misma fuente que la línea de comandos de Windows utiliza. Si quieres esa verdadera sensación de Ubuntu, Chris Hoffman señala cómo puedes instalar la fuente oficial Mono de Ubuntu.

Aquí hay un antes y un después para que puedas ver la diferencia:

"fontFace": "Ubuntu Mono"
(Vista previa grande)

Se ven bastante similares; la principal diferencia está en el espaciado de Ubuntu Mono que hace que el terminal sea un poco más ajustado y limpio.

Esquemas de color

Los esquemas de color se encuentran todos en la parte inferior del archivo de configuración. He copiado el esquema de color «Campbell» como línea de base. Trato de hacer coincidir los colores con sus nombres, pero tampoco tengo miedo de ir por libre. Asignaré «#ffffff» a «azul» – ni siquiera me importa.

(Vista previa grande)

Si te gusta este esquema particular que he llamado «Tierra», he reunido este gist para que no tengas que copiar manualmente todo este lío de una captura de pantalla.

Nota: Las previsiones de color vienen en virtud de la extensión «Color Highlight» para VS Code.

Cambiar el directorio de inicio por defecto

Por defecto, el perfil WSL te deja en tu directorio de inicio en el lado de Windows. Basado en la configuración que estoy recomendando en este artículo, sería preferible que se deje caer en su carpeta de Linux home en su lugar. Para hacer eso, altere la configuración startingDirectory en su perfil «Ubuntu»:

"startingDirectory": "\\wsl$\Ubuntu\home\burkeholland"

Note la ruta allí. Puede utilizar esta ruta (sin las barras de escape adicionales) para acceder a la WSL desde la línea de comandos de Windows.

(Vista previa grande)

Instalar Zsh/Oh-My-Zsh

Si nunca ha utilizado Zsh y Oh-My-Zsh antes, le espera un verdadero placer. Zsh (o «Z Shell») es un shell de reemplazo para Linux. Amplía las capacidades básicas de Bash, incluyendo el cambio de directorio implícito (sin necesidad de teclear cd), un mejor soporte de temas, mejores avisos y mucho más.

Para instalar Zsh, tómalo con el gestor de paquetes apt, que viene de fábrica con tu instalación de Linux:

sudo apt install zsh

Instala oh-my-zsh usando curl. Oh-my-zsh es un conjunto de configuraciones para zsh que mejoran la experiencia del shell aún más con plugins, temas y una miríada de atajos de teclado.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Entonces te preguntará si quieres cambiar tu shell por defecto a Zsh. Lo haces, así que responde afirmativamente y ya estás funcionando con Zsh y Oh-My-Zsh.

(Large preview)

Notarás que el prompt es mucho más limpio ahora. Puedes cambiar el aspecto de ese prompt cambiando el tema en el archivo ~/.zshrc.

Abrelo con nano, que es como VIM, pero puedes editar cosas y salir cuando lo necesites.

nano ~/.zshrc

Cambia la línea que establece el tema. Hay una URL encima con una lista completa de temas. El de la «nube» me parece bonito. Y bonito.

(Vista previa grande)

Para que se recojan los cambios de la .zshrc, tendrás que hacer la fuente:

source ~/.zshrc
(Vista previa grande)

Nota: Si eliges un tema como «agnoster» que requiere glifos, necesitarás una versión de Ubuntu Mono que tenga… glifos. De lo contrario, tu terminal se llenará de caracteres raros como si hubieras aplastado tu cara en el teclado. Nerd Fonts ofrece uno que parece funcionar bastante bien.

Ahora puedes hacer cosas como cambiar de directorio simplemente introduciendo el nombre del mismo. No se requiere cd. ¿Quieres volver a un directorio? Simplemente haz un ... Ni siquiera tienes que escribir el nombre completo del directorio, sólo escribe las primeras letras y pulsa el tabulador. Zsh te dará una lista de todos los archivos/directorios que coinciden con tu búsqueda y puedes tabular a través de ellos.

(Large preview)

Instalando Node

Como desarrollador web, probablemente vas a querer instalar Node. Supongo que no tienes que instalar Node para hacer desarrollo web, ¡pero seguro que se siente así en 2019!

Tu primer instinto podría ser instalar Node con apt, lo cual puedes hacer, pero te arrepentirías por dos razones:

  1. La versión de Node en apt está dolorosamente desactualizada;
  2. Deberías instalar Node con un gestor de versiones para no encontrarte con problemas de permisos.

La mejor manera de resolver estos dos problemas es instalar nvm (Node Version Manager). Ya que has instalado zsh, puedes simplemente añadir el plugin nvm en tu archivo zshrc y zsh se encarga del resto.

Primero, instala el plugin clonando en el repo zsh-nvm. (No te preocupes, Git viene de serie en tu instalación de Ubuntu.)

git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Entonces añádelo como plugin en el archivo ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Large preview)

Recuerda volver a crear el archivo zshrc con source ~/.zshrc y verás cómo se instala nvm.

(Large preview)

Ahora puedes instalar node con nvm. Hace que sea fácil de instalar múltiples versiones de lado a lado de nodo, y cambiar entre ellos sin esfuerzo. Además, ¡no hay errores de permisos cuando haces instalaciones globales de npm!

nvm install --lts

Recomiendo esto sobre la instalación estándar de nvm porque el plugin te da la capacidad de actualizar fácilmente nvm. Esto es una especie de dolor con la instalación estándar de «curl». Es un solo comando con el plugin.

nvm upgrade

Utilizar las auto sugerencias

Uno de mis plugins favoritos para zsh es zsh-autosuggestions. Recuerda las cosas que has escrito en la terminal antes, y luego las reconoce cuando empiezas a escribirlas de nuevo, así como «auto-sugiere» la línea que podrías necesitar. Este plugin ha sido útil más veces de las que puedo recordar – específicamente cuando se trata de comandos largos de la CLI que he usado en el pasado, pero que no puedo recordar.

Clona el repo en la carpeta de extensiones de zsh:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Entonces añádelo a tus plugins de zsh y haz el archivo zshrc:

nano ~/.zshrc# In the .zshrc fileplugins(zsh-nvm zsh-autosuggestions git)source ~/.zshrc

El plugin lee tu historial de zsh, así que empieza a escribir algún comando que hayas escrito antes y observa la magia. Intenta escribir la primera parte de ese largo comando de clonación de arriba.

(Large preview)

Si pulsas ↹, se autocompletará el comando. Si sigues pulsando ↹, recorrerá todos los comandos de tu historial que puedan coincidir.

Accesos de teclado importantes

Hay unos cuantos atajos de terminal que uso todo el tiempo. Lo encuentro con todas mis herramientas – incluyendo VS Code. Tratar de aprender todos los atajos es una pérdida de tiempo porque no los usarás lo suficiente como para recordarlos.

Aquí hay algunos que uso regularmente:

Atajo de terminal ¿Qué hace?
Ctrl + L Esto limpia la terminal y te devuelve al principio. Es el equivalente a escribir «clear».
Ctrl + U Esto borra la línea actual solamente.
Ctrl + A Envía el cursor al principio de la línea de comandos.
Ctrl + E Se desplaza al final de la línea.
Ctrl + K Borra todos los caracteres después del cursor.

¡Eso es todo! Todo lo demás probablemente lo he aprendido y luego lo he olvidado porque nunca se usa.

Configurar Git(Hub/Lab/Whatevs)

Git viene en Ubuntu, así que no hace falta instalarlo. Puedes seguir las instrucciones de tu hoster de control de fuentes de elección para tener tus claves ssh creadas y funcionando.

Nota que en las instrucciones de Github, te dice que uses la utilidad «copy» para copiar tu clave ssh. Ubuntu tiene el comando «xcopy», pero no va a funcionar aquí porque no hay interop entre Linux y Windows en términos de un portapapeles.

En su lugar, sólo puede utilizar el ejecutable de Windows Clipboard y llamarlo directamente desde el terminal. Usted necesita para obtener el texto primero con cat, y luego la tubería que al portapapeles de Windows.

cat ~/.ssh/id_rsa.pub | clip.exe 

El Github docs dicen que para asegurarse de que el ssh-agent se está ejecutando. No lo está. Verás esto cuando intentes añadir tu clave al agente:

(Large preview)

Puedes iniciar el agente, pero la próxima vez que reinicies Windows o se detenga el WSL, tendrás que iniciarlo de nuevo. Esto se debe a que no hay un sistema de inicialización en el WSL. No hay un systemd u otro proceso que inicie todos sus servicios cuando el WSL se inicia. La WSL está todavía en fase de previsualización, y el equipo está trabajando en una solución para esto.

Mientras tanto, lo creas o no, hay un plugin de zsh para esto, también. Se llama ssh-agent, y viene instalado con oh-my-zsh, así que todo lo que necesitas hacer es referenciarlo en el archivo .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

Esto iniciará el agente ssh automáticamente si no se está ejecutando la primera vez que enciendas el WSL. La desventaja es que te pedirá tu frase de contraseña cada vez que el WSL se inicie de nuevo. Eso significa esencialmente cada vez que reinicie su ordenador.

(Large preview)

VS Code y el WSL

El WSL no tiene interfaz gráfica de usuario, por lo que no puede instalar una herramienta visual como VS Code. Eso tiene que ser instalado en el lado de Windows. Esto presenta un problema porque usted tiene un programa que se ejecuta en el lado de Windows acceder a los archivos en el lado de Linux, y esto puede resultar en todo tipo de peculiaridades y «permiso denegado» problemas. Como regla general, Microsoft recomienda no alterar los archivos en el lado WSL con programas de Windows.

Para resolver esto, hay una extensión para VS Code llamada «Remote WSL». Esta extensión está hecha por Microsoft, y permite desarrollar dentro de la WSL, pero desde dentro de VS Code.

Una vez instalada la extensión, se puede adjuntar VS Code directamente al lado de Ubuntu abriendo la Paleta de Comandos (Ctrl + Shift + P) y seleccionar «Remote-WSL: New Window».

(Vista previa grande)

Esto abre una nueva instancia de VS Code que le permite trabajar como si estuviera completamente en el lado de Linux. Haciendo «Archivo/Abrir» navega por el sistema de archivos de Ubuntu en lugar del de Windows.

(Large preview)

El terminal integrado en VS Code abre su configuración zsh bellamente personalizada. Todo «funciona» como debería cuando tiene instalada la extensión Remote WSL.

Si abre el código desde su terminal con code ., VS Code detectará automáticamente que fue abierto desde la WSL, y autoadjuntará la extensión Remote WSL.

Extensiones de VS Code con Remote WSL

La extensión Remote WSL para VS Code funciona configurando un pequeño servidor en el lado Linux, y luego conectándose a él desde VS Code en el lado Windows. Siendo así, las extensiones que tengas instaladas en VS Code no aparecerán automáticamente cuando abras un proyecto desde la WSL.

Por ejemplo, tengo un proyecto Vue abierto en VS Code. Aunque tengo todas las extensiones de Vue instaladas para el resaltado de sintaxis, el formato y demás, VS Code actúa como si nunca hubiera visto un archivo .vue.

(Large preview)

Todas las extensiones que tengas instaladas pueden activarse en la WSL. Sólo tiene que encontrar la extensión que desea en el WSL, y hacer clic en el botón «Instalar en WSL».

(Vista previa grande)

Todas las extensiones instaladas en el WSL aparecerán en su propia sección en la vista del Explorador de Extensiones. Si tiene muchas extensiones, podría ser un poco molesto instalar cada una individualmente. Si quieres instalar simplemente todas las extensiones que tienes en el WSL, haz clic en el pequeño icono de descarga en la nube en la parte superior de la sección ‘Local – Instalado’.

(Vista previa grande)

Cómo configurar tus directorios de desarrollo

Este ya es un artículo de opinión, así que aquí tienes uno que no pediste sobre cómo creo que deberías estructurar tus proyectos en tu sistema de archivos.

Yo mantengo todos mis proyectos en el lado de Linux. No pongo mis proyectos en «Mis Documentos» y luego trato de trabajar con ellos desde el WSL. Mi cerebro no puede con eso.

Creo una carpeta llamada /dev que pongo en la raíz de mi carpeta /home en Linux. Dentro de esa carpeta, creo otra que tiene el mismo nombre que mi repo de Github: /burkeholland. Esa carpeta es donde van todos mis proyectos – incluso los que no son empujados a Github.

Si clono un repo de una cuenta de Github diferente (por ejemplo, «microsoft»), voy a crear una nueva carpeta en «dev» llamada /microsoft. Entonces clono el repo en una carpeta dentro de eso.

Básicamente, estoy imitando la misma estructura que el control de la fuente en mi máquina local. Me parece mucho más fácil de razonar acerca de donde los proyectos son y lo que los repos que se adjuntan a sólo en virtud de su ubicación. Es simple, pero es muy eficaz para ayudarme a mantener todo organizado. Y necesito toda la ayuda que pueda conseguir.

(Large preview)

Browsing Files From Windows Explorer

Hay ocasiones en las que necesitas llegar a un archivo en Linux desde el lado de Windows. Lo bonito de la WSL es que aún puedes hacerlo.

Una forma es acceder a la WSL como si fuera una unidad mapeada. Accede a ella con un \wsl$ directamente desde la barra del explorador:

\wsl$
(Large preview)

Puedes hacer esto por diferentes razones. Por ejemplo, hoy mismo necesitaba una extensión de Chrome que no está en la tienda web. Así que cloné el repo en WSL, luego navegué hasta él como una «Extensión desempaquetada» y la cargué en Edge.

Una cosa que hago con cierta frecuencia en Linux es abrir el directorio que contiene un archivo directamente desde la terminal. Esto también se puede hacer en el WSL, llamando directamente a explorer.exe. Por ejemplo, este comando abre el directorio actual en el Explorador de Windows.

$ explorer.exe .

Sin embargo, este comando es un poco engorroso. En Linux, es simplemente open .. Podemos hacer esa misma magia creando un alias en el ~/.zshrc.

alias open="explorer.exe"

Docker

Cuando dije que todas las herramientas deberían estar en el lado de Linux, me refería a eso. Eso incluye Docker.

Aquí es donde el caucho realmente comienza a encontrar el camino. Lo que necesitamos aquí es Docker, corriendo dentro de Linux corriendo dentro de Windows. Es un poco de un muñeco de nido ruso cuando se escribe en una entrada de blog. En realidad, es bastante sencillo.

Necesitarás la versión correcta de Docker para Windows. En el momento de escribir esto, es la WSL 2 Tech Preview.

Cuando ejecutes el instalador, te preguntará si quieres usar contenedores Windows en lugar de contenedores Linux. Definitivamente hay que hacerlo. Si no, no te saldrá la opción de ejecutar Docker en el WSL.

(Large preview)

Ahora puede habilitar Docker en la WSL haciendo clic en el elemento de la bandeja del sistema y seleccionando «WSL 2 Tech Preview»:

(Large preview)

Después de iniciar el servicio, puede utilizar Docker dentro de la WSL tal y como esperaría poder hacerlo. Ejecutar Docker en el WSL proporciona un aumento de rendimiento bastante grande, así como un impulso en el tiempo de arranque en frío en los contenedores.

¿Puedo recomendar también que instale la extensión Docker para VS Code? Pone una interfaz visual en su configuración de Docker y, en general, sólo hace que sea más fácil trabajar con Docker porque usted no tiene que recordar todas esas banderas de línea de comandos y opciones.

Obtenga más Bash en Windows

En este punto, usted debe tener la idea acerca de cómo poner Bash en Windows, y cómo funciona una vez que llegue allí. Puedes personalizar tu terminal infinitamente y hay todo tipo de programas rad que puedes añadir para hacer cosas como establecer automáticamente variables PATH, crear alias, obtener una vaca ASCII en tu terminal, y mucho más.

Ejecutar Bash en Windows me abrió un universo completamente nuevo. Soy capaz de combinar Windows, que me encanta por el lado de la productividad, y Linux, del que dependo como desarrollador. Lo mejor de todo es que ahora puedo crear aplicaciones para ambas plataformas con una sola máquina.

Más información

Puedes leer más sobre Bash en Windows aquí:

  • «Guía de instalación del subsistema de Windows para Linux para Windows 10», Microsoft Docs
  • «Cómo instalar y utilizar el shell Bash en Windows 10», Chris Hoffman, How-To Geek
  • «Compartir SSH con WSL», Drew Wilson
  • «Volverse loco con el subsistema de Windows para Linux,» Brian Ketelsen
  • «Todo lo que puedes hacer con el nuevo Bash Shell de Windows 10», Chris Hoffman, How-To Geek

Gracias especialmente a Brian Ketelsen, Matt Hernandez, Rich Turner y Craig Loewen por su paciencia, ayuda y orientación con este artículo.

(rb, dm, il)

Deja una respuesta

Tu dirección de correo electrónico no será publicada.