Búsqueda de sitios web

javascript - tarea de limpieza de Visual Studio Code


Estoy trabajando en Visual Studio Code en Ubuntu en mi proyecto de Typescript. Y me pregunto si existe alguna posibilidad de ejecutar algún tipo de tarea 'clean'. Aquí está mi tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "tasks": [
        {
            "taskName": "tsc",
            "command": "tsc",
            "isShellCommand": true,
            "isBackground": true,
            "problemMatcher": "$tsc"
        },
        {
            "taskName": "clean",
            "linux": {
                "command": "rm",
                "args": [
                    "./src/*.js"
                ],
                "isShellCommand": true
            },
            "isShellCommand": true,
            "isBackground": true
        }
    ]
}

Y aquí está la estructura de mi proyecto.

Ejecutar task clean dice que no hay tales archivos o directorio, mientras que ejecutar 'pwd' en lugar de rm dice que estoy en la raíz de mi proyecto. ¿Alguna sugerencia sobre cómo funciona este sistema de compilación? ¿Quizás hay alguna sintaxis especial para las variables de entorno en VS Code?

Respuesta #1

Después de VSCode 1.14, tenemos un nuevo gestor de tareas en VSCode. Estoy usando .NET Core en Ubuntu y tengo tareas build y clean así:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "process",
            "command": "dotnet",
            "args": [
                "build",
                "MyProj.csproj"
            ],
            "options": {
                "cwd": "${workspaceFolder}/src/MyProj/"
            },
            "problemMatcher": "$msCompile"
        },
        {
            "label": "clean",
            "type": "shell",
            "linux": {
                "command": "rm",
                "args": [
                    "-rfv",
                    "bin/*",
                    "obj/*"
                ]
            },
            "windows": {
                "command": "del",
                "args": [
                    "/S /Q",
                    "bin/*",
                    "obj/*"
                ]
            },
            "options": {
                "cwd": "${workspaceFolder}/src/MyProj/"
            },
            "problemMatcher": []
        }
    ]
}

Ambas tareas funcionan como se esperaba.

Respuesta #2

También he estado buscando esto, pero hasta donde entiendo, no es posible tener más de una tarea en tasks.json. Puedes tener un arreglo de tareas, pero eso solo contiene diferentes parámetros de línea de comandos para la misma tarea. Este ejemplo tiene la tarea 'echo', y puedes llamarla con diferentes parámetros. Si llamas a la tarea 'hello', entonces se ejecutará 'echo Hello World':

{
    "version": "0.1.0",
    "command": "echo",
    "isShellCommand": true,
    "args": [],
    "showOutput": "always",
    "echoCommand": true,
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "hello",
            "args": ["Hello World"]
        },
        {
            "taskName": "bye",
            "args": ["Good Bye"]
        }
    ]
}