在VSCode中定义多个任务

83
我看到可以在 VSCode 中定义任务。但是我不确定如何在 `tasks.json` 文件中定义多个任务。

一流的支持已经在VS Code 1.9(2017年1月)中添加,消除了在此处看到的顶部答案中所见到的解决方法的需要。请参见我的答案。 (https://dev59.com/L10a5IYBdhLWcg3wsKe2#43566702)。 - vossad01
答案可以在这里找到:https://dev59.com/zVcP5IYBdhLWcg3w5d_Q#50241977 - pasx
13个回答

1

这对我有用...

我知道这里有很多不同的答案,但我的方法又有点不同,所以我想再添加一些意见。

我在Windows上使用外部批处理文件来运行命令。这与Jonathan上面的答案类似,但我没有将任何命令传递给它,这意味着我的“tasks.json”文件不同。

我可能会随着时间的推移改变这种方法(例如,我还没有开始尝试gulp),但这种方法目前完全可以正常工作。

我正在使用handlebars进行HTML模板化,使用Babel使我可以使用ES6代码和代码检查器来捕捉错误。最后,批处理文件启动一个带有我的起始页(index.html)的浏览器。

以下是我的批处理文件run_tasks.bat:

@ECHO OFF
@ECHO Startz!
@ECHO Running Handlebars!

call handlebars html_templates -e html -f dist/html_templates.js

@ECHO Linting ES6 code

call eslint -c eslint.json src

@ECHO Running Babel ES6 to ES5

call babel src --out-dir dist --source-maps

@ECHO Now startzing page up in browser!
index.html

@ECHO Donezz it!

这是我的tasks.json文件:

{ 
    "version": "0.1.0",
    "command": "${workspaceRoot}/run_tasks.bat",
    "isShellCommand": true,
    "isWatching": true,
    "showOutput": "always",

    "args": [],

    "tasks": [
        {
            "taskName": "build",
            "isBuildCommand": true,
            "isWatching": true,
            "showOutput": "always"
        }
}

然后,在VSCode中,我按下“CTRL + SHIFT + B”来运行我的批处理文件。

1
我有一个Electron应用程序,需要编译less样式表,然后构建和启动程序。我使用了@Ocean的解决方案,这对我有效......没有其他方法有效。我的tasks.json和build-tasks.bat文件都在项目根目录下的.vscode目录中。

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
感谢这个帖子,现在我可以在OSX上使用此命令:在VSCode中构建、测试、调试等操作,支持C#和dnxcore50。
{
"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"    
    }      
]
}

我相信Linux基本上是一样的。唯一让我感到烦恼的是不得不为调试而维护.csproj文件。我期待着用dnx进行调试的方法,尽管我已经好几个星期没有去寻找了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接