我看到可以在 VSCode 中定义任务。但是我不确定如何在 `tasks.json` 文件中定义多个任务。
这对我有用...
我知道这里有很多不同的答案,但我的方法又有点不同,所以我想再添加一些意见。
我在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"
}
}
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"
}
]
}
{
"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进行调试的方法,尽管我已经好几个星期没有去寻找了。