Logo

dev-resources.site

for different kinds of informations.

Mejora tu productividad automatizando tareas en Visual Studio Code

Published at
12/15/2024
Categories
spanish
webdev
vscode
productivity
Author
DowarDev
Mejora tu productividad automatizando tareas en Visual Studio Code

Introducci贸n

Visual Studio Code(VSCode) cuenta con una funci贸n que nos permitir谩 mejorar nuestra productividad y as铆 enfocarnos en programar.

Al configurar tu entorno de desarrollo, puedes crear comandos personalizados que ejecuten m煤ltiples tareas de forma secuencial. Por ejemplo, puedes definir un comando que inicie autom谩ticamente el servidor de tu proyecto al abrirlo en VSCode. Del mismo modo, puedes crear un comando que ejecute las pruebas, genere el paquete de despliegue y lo suba a producci贸n en un solo paso.

Nota
Este tutorial te guiar谩 a trav茅s de los conceptos b谩sicos y te preparar谩 para profundizar en la documentaci贸n oficial.

Preparaci贸n

  1. Abrimos nuestro proyecto con VSCode.
  2. En la ra铆z del proyecto buscamos el directorio(oculto) .vscode(si no existe lo creamos).
  3. Dentro del mismo creamos(si no existe) un archivo bajo el nombre de tasks.json

Tipo de tarea

Existen dos tipos de tareas:

  • Tarea simple: Solo ejecuta una 煤nica acci贸n, ejemplo: iniciar servidor
  • Tarea compuesta: Ejecuta m谩s de una acci贸n, ejemplo: Iniciar tests, realizar build y hacer deploy.

Estructura

{
  "version": "2.0.0",
  "tasks": [
    {
    "label": "nombre de la tarea",
    "type": "shell","typescript"
    "command": "comando a ejecutar",
    "args": ["argumento1", "argumento2"], 
    "group": {
        "kind": "build",
        "isDefault": true 
    },
    "problemMatcher": [], 
    "detail": "Descripci贸n de la tarea",
    "presentation": {
        "echo": true, // opcional
        "reveal": "always", 
        "focus": false, 
        "panel": "shared" 
    },
    "runOptions": {
        "runOn": "folderOpen" 
    }
    }
  ]
}
  • label: Nombre de la tarea.
  • type: Tipo de tarea (shell, process, npm, gulp, grunt, typescript).
  • command: Comando a ejecutar.
  • args: Argumentos para el comando (opcional).
  • group: Agrupaci贸n de la tarea (opcional).
  • kind: Tipo de grupo (build, test, none).
  • isDefault: Si es la tarea predeterminada del grupo (opcional).
  • problemMatcher: Configuraci贸n para detectar problemas en la salida del comando (opcional).
  • detail: Descripci贸n de la tarea (opcional).
  • presentation: Configuraci贸n de presentaci贸n de la tarea (opcional).
  • echo: Si se debe mostrar el comando en la salida (opcional).
  • reveal: Cu谩ndo mostrar la salida (always, silent, never).
  • focus: Si se debe enfocar la salida (opcional).
  • panel: Panel de salida (shared, dedicated, new).
  • runOptions: Opciones de ejecuci贸n de la tarea (opcional).
  • runOn: Cu谩ndo ejecutar la tarea (folderOpen, default).

Ejemplos

Tarea simple

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Ionic serve",
      "type": "shell",
      "command": "ionic serve --external",
      "group": {
        "kind": "test",
        "isDefault": true
      },
      "problemMatcher": [],
      "detail": "Tarea para iniciar el servidor de desarrollo de Ionic",
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared"
      },
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

El ejemplo anterior inicia el servidor para un proyecto de Ionic.

Tarea compuesta

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Tests",
      "type": "shell",
      "command": "npm run test",
      "problemMatcher": [],
      "detail": "Tarea para ejecutar los tests de la aplicaci贸n"
    },
    {
      "label": "Build App",
      "type": "shell",
      "command": "npm run build",
      "problemMatcher": [],
      "detail": "Tarea para construir la aplicaci贸n"
    },
    {
      "label": "Deploy via SSH",
      "type": "shell",
      "command": "scp -r ./dist/* user@remote:/path/to/deploy",
      "problemMatcher": [],
      "detail": "Tarea para mandar los archivos por SSH"
    },
    {
      "label": "Full Deploy",
      "dependsOn": ["Run Tests", "Build App", "Deploy via SSH"],
      "problemMatcher": [],
      "detail": "Tarea para ejecutar tests, construir y desplegar la aplicaci贸n"
    }
  ]
}

Con esto se lograr谩 ejecutar los tests, el build y finalmente el deploy usando Full Deploy.

Ejecuci贸n

Tarea simple

  1. Iniciamos la paleta de comandos(Ctrl+Shift+P)
  2. Ingresamos Run Task
  3. Seleccionamos la tarea de nuestra preferencia(nombre asignado en label)

Nota
Gracias a la propiedad runOn con el valor asignado folderOpen en el ejemplo de la tarea simple no sera necesario ejecutarla mediante la paleta de comandos ya que tener esta propiedad definida le indica que debe ejecutarse tan pronto se inice el proyecto.

Tarea compuesta

Si se analiza detenidamente se podr谩 observar que el ejemplo de la tarea simple y compuesta comparten varias similitudes en su estructura, exceptuando por lo siguiente:

{
      "label": "Full Deploy",
      "dependsOn": ["Run Tests", "Build App", "Deploy via SSH"],
      "problemMatcher": [],
      "detail": "Tarea para ejecutar tests, construir y desplegar la aplicaci贸n"
    }

Lo que nos permite este fragmento es ejecutar varias tareas usando un 煤nico comando bajo el nombre definido en label(Full Deploy), esto lo hace gracias a la propiedad dependsOn en donde se pasa como argumento el nombre de las tareas que ejecutara. De ser requerido se podr谩 ejecutar las tareas de forma individual usando el nombre definido en el label, en este caso: Run Tests, Build App, Deploy via SSH.

Nota
Si una tarea falla la siguiente no se ejecutara a no ser que especifiquemos la propiedad dependsOrder en sequence o parallel

Para ejecutar la tarea compuesta se hace de la misma forma que una tarea simple

  1. Abrimos la paleta de comandos(Ctrl+Shift+P)
  2. Ingresamos Run Task
  3. Seleccionamos la tarea de nuestra preferencia(en esta caso Full Deploy)

Resumen

Hagamos un resumen r谩pido

  1. Creamos un tasks.json en.vscode`
  2. Definimos las tareas que usaremos en nuestro proyecto
  3. Ejecutamos Ctrl+Shift+P y en la paleta de comandos ingresamos Run Task.
  4. Seleccionamos la tarea deseada.

Post original: https://dowar.xyz/blog/post/55

Featured ones: