Define multiple tasks in VSCode

后端 未结 13 1976
旧时难觅i
旧时难觅i 2020-11-28 05:40

I have seen that it is possible to define a task in the VSCode. But I am not sure how to define multiple tasks in the tasks.json file.

相关标签:
13条回答
  • 2020-11-28 05:48

    The following worked for me:

    tasks.json:

    {
        "version": "0.1.0",
        "command": "cmd",
        "isShellCommand": true,
        "args": [
            "/c"
        ],
        "tasks": [
            {
                "taskName": "bower",
                "args" : ["gulp bower"],
                "isBuildCommand": true,
                "showOutput": "always"
            },
            {
                "taskName": "unittest",
                "suppressTaskName": true,
                "args" : ["dnx -p ${cwd}\\test\\MyProject.UnitTests test"],
                "isTestCommand": true,
                "showOutput": "always"
            }
        ]
    }
    

    MyProject.UnitTests\project.json:

     "commands": {
        "test": "xunit.runner.dnx"
      }
    

    Run bower : Ctrl + Shift + B from vscode Run tests : Ctrl + Shift + T from vscode

    0 讨论(0)
  • 2020-11-28 05:51

    You can list more than one task in the tasks property. Something like:

    "tasks": [
        {
            "taskName": "build",
            ...
        },
        {
             "taskName": "package",
             ...
        }
    ]
    
    0 讨论(0)
  • 2020-11-28 05:57

    I don't know the proper answer to this (and would also like to know), but my ugly workaround in case it helps anyone. I'm on Windows, I've ended up creating myself a simple batch script which could contain simply

    "%1" "%2"
    

    Then my tasks.json looks something like

    {
        "version": "0.1.0",
        "command": "c:\\...\\mytasks.bat"
        "tasks" : [
            {
                "taskName": "myFirstTask",
                "args": "c:\\...\\task1.exe", "${file}"],
            },
            {
                "taskName": "mySecondTask",
                "args": "c:\\...\\task2.exe", "${file}"],
            },
        ]
    }
    
    0 讨论(0)
  • 2020-11-28 05:58

    I have an Electron app that needs to compile a less stylesheet then build and launch the program. I used @Ocean's solution which worked for me...nothing else worked.

    Both my tasks.json and build-tasks.bat file are in the .vscode directory in the root of the project.

    build-tasks.bat

    @ECHO OFF
    @ECHO Begin!
    @ECHO Compiling Less
    
    call lessc ./css/styles.less ./css/styles.css
    
    @ECHO Build Electron App and Launch
    
    call electron ./app.js
    
    @ECHO Finished!
    

    tasks.json

    {
        "version": "0.1.0",
        "command": "${workspaceRoot}\\.vscode\\build-tasks.bat",
        "isShellCommand": true,
        "isWatching": true,
        "showOutput": "always",
    
        "args": [],
    
        "tasks": [
            {
                "taskName": "build",
                "isBuildCommand": true,
                "isWatching": true,
                "showOutput": "always"
            }
        ]
    }
    
    0 讨论(0)
  • 2020-11-28 06:02

    As of the February 2017 release, you can use Terminal Runner and compose multiple tasks by setting up dependency tasks. It's a little funky in that it will open up a separate integrated terminal for each task, which you have to watch to see if things work and remember to close (they "stack"), and you don't get a "done" notification, but it gets the job done. The functionality is preliminary but it is promising. Here's is an example to run tsc and jspm for a Cordova app.

    {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [{
            "taskName": "tsc",
            "command": "tsc",
            "isShellCommand": true,
            "args": ["-p", "."],
            "showOutput": "always",
            "problemMatcher": "$tsc"
        }, {
            "taskName": "jspm",
            "command": "jspm",
            "isShellCommand": true,
            "args": ["bundle-sfx", "www/app/main.js", "www/dist/bundle.js", "--inline-source-maps", "--source-map-contents"],
            "showOutput": "always"
        },
        {
            "taskName": "build",
            "isBuildCommand": true,
            "dependsOn": ["tsc", "jspm"]
        }]
    }
    
    0 讨论(0)
  • 2020-11-28 06:03

    Thanks to this thread, I now have c# / dnxcore50 build and test debug etc working in vscode on osx with this:

    {
    "version": "0.1.0",
    "command": "bash",
    "args": [
    ],
    "tasks": [
        {
            "taskName": "xbuild",
            "args": [
                "./src/Service.Host/Service.Host.csproj"
            ],          
    
            "showOutput": "always",
            "problemMatcher": "$msCompile",
            "isBuildCommand": true
        },
        {
            "taskName": "dnx",
            "args" : ["-p", "./test/Service.Tests.Unit", "test"],
            "isTestCommand": true,
            "showOutput": "always"    
        }      
    ]
    }
    

    I am sure linux would be basicly the same. The only thing that is anoying me is having to maintain the .csproj files just for debuging. I am looking forward to a way to debug with dnx, though I have not looked for a couple of weeks now.

    0 讨论(0)
提交回复
热议问题